  
  [1X12 [33X[0;0YPrepare functions[133X[101X
  
  
  [1X12.1 [33X[0;0YPrepare functions[133X[101X
  
  [1X12.1-1 CAPOperationPrepareFunction[101X
  
  [29X[2XCAPOperationPrepareFunction[102X( [3Xprepare_function[103X, [3Xcategory[103X, [3Xfunc[103X ) [32X function
  [6XReturns:[106X  [33X[0;10Ya function[133X
  
  [33X[0;0YGiven  a  non-CAP-conform  function  for  any of the categorical operations,
  i.e.,  a  function  that computes the direct sum of two objects instead of a
  list of objects, this function wraps the function with a wrapper function to
  fit  in  the  CAP  context. For the mentioned binary direct sum one can call
  this  function  with  [10X"BinaryDirectSumToDirectSum"[110X  as [3Xprepare_function[103X, the
  category,  and  the  binary direct sum function. The function then returns a
  function that can be used for the direct sum categorical operation.[133X
  
  [33X[0;0YNote  that [3Xfunc[103X is not handled by the CAP caching mechanism and that the use
  of  prepare  functions  is incompatible with [10XWithGiven[110X operations. Thus, one
  has  to  ensure  manually  that  the  equality and typing specifications are
  fulfilled.[133X
  
  [1X12.1-2 CAPAddPrepareFunction[101X
  
  [29X[2XCAPAddPrepareFunction[102X( [3Xprepare_function[103X, [3Xname[103X, [3Xdoc_string[103X[, [3Xprecondition_list[103X] ) [32X function
  
  [33X[0;0YAdds  a  prepare  function to the list of CAP's prepare functions. The first
  argument is the prepare function itself. It should always be a function that
  takes a category and a function and returns a function. The argument [3Xname[103X is
  the    name    of    the    prepare    function,    which    is    used   in
  [10XCAPOperationPrepareFunction[110X.  The  argument  [3Xdoc_string[103X  should  be  a short
  string describing the functions. The optional argument [3Xprecondition_list[103X can
  describe  preconditions  for  the  prepare  function  to  work, i.e., if the
  category  does  need to have PreCompose computable. This information is also
  recovered   automatically   from   the   prepare  function  itself,  so  the
  [3Xprecondition_list[103X is only necessary if the function needed is not explicitly
  used   in   the   prepare   function,   e.g.,   if  you  use  [10X+[110X  instead  of
  [10XAdditionForMorphisms[110X.[133X
  
  [1X12.1-3 ListCAPPrepareFunctions[101X
  
  [29X[2XListCAPPrepareFunctions[102X( [3Xarg[103X ) [32X function
  
  [33X[0;0YLists all prepare functions.[133X
  
