Funcons for expressing normal computation generally terminate normally, computing (sequences of) values. If an executed computation argument terminates abnormally, however, these funcons always propagate the abnormal termination. The execution of a funcon for normal computation may also fail, which is a particular kind of abnormal termination used to represent dynamic errors (e.g., referencing an unbound identifier).
The CBS library includes funcons corresponding to the following concepts:
- pure flow of control
- computing values, and referencing the latest computed value
- binding identifiers to values, and referencing them
- computing fresh values
- allocating variables, assigning values to them, and inspecting current values
- creating potentially cyclic bindings
- interactive input and output.