Technical Details

The Category Cat IsCachingObject Retuns the caching object which stores the results of the functor functor applied to objects. IsCachingObject Retuns the caching object which stores the results of the functor functor applied to morphisms.
Tools

a filter The function takes a filter or one of the strings listed under `filter_list` in . Filters are returned unchanged. If a string is given, the corresponding filter of the category category is returned. If no category is given, generic filters (`IsCapCategoryObject`, `IsCapCategoryMorphism` etc.) are used. Replaced list Applies to all elements of list and returns the result. merged lists The first argument should be a dense list with filters, the second a sparse list containing filters not longer then the first one. The filters of the second list are then appended (via and) to the filters in the first list at the corresponding position, and the resulting list is returned. option value Returns the value of the option with name string, or, if this value is fail, the object value. a list of symbols with multiples The function searches for the appearance of the strings in symbol list on the function function and returns a list of pairs, containing the name of the symbol and the number of appearance. If the symbol appears in a loop, the number of appearance is counted times the loop multiple. Moreover, if appearances of found strings should be replaced by collections of other strings, then these can be specified in the replacement record. merge list The function takes two lists containing pairs of symbols (strings) and multiples. The lists are merged that pairs where the string only appears in one list is then added to the return list, if a pair with a string appears in both lists, the resulting lists only contains this pair once, with the higher multiple from both lists. The function throws an error if cell is not a cell of category. If category is the boolean false, only general checks not specific to a concrete category are performed. human_readable_identifier_getter is a 0-ary function returning a string which is used to refer to cell in the error message. The function throws an error if object is not an object of category. If category is the boolean false, only general checks not specific to a concrete category are performed. human_readable_identifier_getter is a 0-ary function returning a string which is used to refer to object in the error message. The function throws an error if morphism is not a morphism of category. If category is the boolean false, only general checks not specific to a concrete category are performed. human_readable_identifier_getter is a 0-ary function returning a string which is used to refer to morphism in the error message. The function throws an error if two_cell is not a 2-cell of category. If category is the boolean false, only general checks not specific to a concrete category are performed. human_readable_identifier_getter is a 0-ary function returning a string which is used to refer to two_cell in the error message. The function throws an error if list_of_objects is not a dense list of objects of category. If category is the boolean false, only general checks not specific to a concrete category are performed. human_readable_identifier_getter is a 0-ary function returning a string which is used to refer to list_of_objects in the error message. The function throws an error if list_of_morphisms is not a dense list of morphisms of category. If category is the boolean false, only general checks not specific to a concrete category are performed. human_readable_identifier_getter is a 0-ary function returning a string which is used to refer to list_of_morphisms in the error message. The function throws an error if list_of_twocells is not a dense list of 2-cells of category. If category is the boolean false, only general checks not specific to a concrete category are performed. human_readable_identifier_getter is a 0-ary function returning a string which is used to refer to list_of_twocells in the error message. The function throws an error if nnintorinf is not a nonnegative integer or infinity. human_readable_identifier_getter is a 0-ary function returning a string which is used to refer to nnintorinf in the error message. Prints statistics for all caches in category. If operation is given (as a string), only statistics for the given operation cache is stored. Displays statistics for all caches in category. in a Browse window. Here "status" indicates if the cache is weak, strong, or inactive, "hits" is the number of successful cache accesses, "misses" the number of unsuccessful cache accesses, and "stored" the number of objects currently stored in the cache. Makes the function given by function_name available under the alias alias_name with a deprecation warning including the date deprecation_date. Checks if filter2 is more special than filter1, i.e. if filter2 implies filter1. filter1 and/or filter2 can also be one of the strings listed under `filter_list` in and in this case are replaced by the corresponding filters (e.g. `IsCapCategory`, `IsCapCategoryObject`, `IsCapCategoryMorphism`, ...). Checks if filter_list2 is more special than filter_list1, i.e. if both lists have the same length and any element of filter_list2 is more special than the corresponding element of filter_list1 in the sense of . filter_list1 and filter_list2 can also be the string `"any"`, respresenting a most general filter list of any length. Installs a method via `InstallMethod` and adds it to the list of methods known to the compiler. See for requirements. Installs a method via `InstallOtherMethod` and adds it to the list of methods known to the compiler. See for requirements. Adds a method to the list of methods known to the compiler. The first argument of the method must be a CAP category. Method selection happens via the number of arguments and the category filter. In particular, adding two methods (or a convenience method for a CAP operation) with the same number of arguments and one category filter implying the other is not supported. (experimental) Adds a type signature for the global function or operation given by name to the compiler. input_filters must be a list of filters, or the string '"any"' representing a most general filter list of any length. output_data_type must be a filter, a data type, or a function. If it is a function with one argument, it must accept a list of input types and return the corresponding data type of the output. If it is a function with two arguments, it must accept the arguments of a function call of name (as syntax trees) and the function stack and return a record with components `args` (the possibly modified arguments) and `output_type` (the data type of the output). See for more details on data types. (experimental) Same as , but the filters and the output data type must be given as strings which will be evaluated once package_name is loaded. This should be used with care because errors will only be detected at runtime. (experimental) Returns the data type of the category (or objects or morphisms in the category) category.

Computes a fixpoint of func with regard to equality given by predicate, starting with initial_value. If no such fixpoint exists, the execution does not terminate. Shorthand for `Iterated( Concatenation( [ initial_value ], list ), func )`. Returns a list of package names which are transitively needed other packages of the package package_name. Returns the name of the package to which the CAP operation given by operation_name belongs or fail if the package is not known. an integer Returns `Position( list, obj )` while asserting that this value is not `fail`. an integer Returns `Position( list, obj )` while asserting that this value is not `fail` and the position is unique. an integer Returns `PositionProperty( list, func )` while asserting that this value is not `fail`. an integer Returns a position in list for which func returns `true` when applied to the corresponding entry while asserting that there exists exactly one such position. an element of the list Returns `First( list, func )` while asserting that this value is not `fail`. an element of the list Returns a value in list for which func returns `true` while asserting that there exists exactly one such entry. a list Returns args while asserting that its length is n. a list Alias for `NTuple( 2, first, second )`. a list Alias for `NTuple( 3, first, second, third )`. Handles the information stored in `underlying_category!.compiler_hints.precompiled_towers` (if bound) which is a list of records with components: `remaining_constructors_in_tower`: a non-empty list of strings (names of category constructors) `precompiled_functions_adder`: a function accepting a CAP category as input

If constructor_name is the only entry of `remaining_constructors_in_tower`, `precompiled_functions_adder` is applied to category (except if the option `no_precompiled_code` is set to `true`) and should add precompiled code. Else, if constructor_name is the first entry of `remaining_constructors_in_tower`, the information is attached to `category!.compiler_hints.precompiled_towers` after removing constructor_name from `remaining_constructors_in_tower`. Note: Currently, there is no logic for finding the "optimal" code to install if constructor_name is the only entry of `remaining_constructors_in_tower` of multiple entries. Simply returns value. Used to signify that the argument is not fully run through all logic functions/templates by CompilerForCAP. a list Same as `List( list, func )` but func gets both the key `i` and `list[i]` as arguments. a list Same as `Sum( list, func )` but func gets both the key `i` and `list[i]` as arguments. a list Same as `Product( list, func )` but func gets both the key `i` and `list[i]` as arguments. a list Same as `ForAll( list, func )` but func gets both the key `i` and `list[i]` as arguments. a list Same as `ForAny( list, func )` but func gets both the key `i` and `list[i]` as arguments. a list Same as `Number( list, func )` but func gets both the key `i` and `list[i]` as arguments. a list Same as `Filtered( list, func )` but func gets both the key `i` and `list[i]` as arguments. a list Same as `First( list, func )` but func gets both the key `i` and `list[i]` as arguments. a list Same as `Last( list, func )` but func gets both the key `i` and `list[i]` as arguments.