To the right of the with is a list of with all the exports of the
category. Each exported operation has a name and a type expressed by a
declaration of the form
Categories can export symbols, as well as 0 and 1 which denote domain constants.The numbers 0 and 1 are operation names in FriCAS. In the current implementation, all other exports are operations with types expressed as mappings with the syntax
source -> target
The category SetCategory has a single export: the operation = whose type is given by the mapping ($, $) -> Boolean. The $ in a mapping type always means the domain. Thus the operation = takes two arguments from the domain and returns a value of type Boolean.
The source part of the mapping here is given by a tuple tuple consisting of two or more types separated by commas and enclosed in parentheses. If an operation takes only one argument, you can drop the parentheses around the source type. If the mapping has no arguments, the source part of the mapping is either left blank or written as (). Here are examples of formats of various operations with some contrived names.
someIntegerConstant : $ aZeroArgumentOperation: () -> Integer aOneArgumentOperation: Integer -> $ aTwoArgumentOperation: (Integer,$) -> Void aThreeArgumentOperation: ($,Integer,$) -> Fraction($)