# Computations
## Types of computation
[
Funcon computation-types
]
## Normal computation
### Flowing
[ Funcon left-to-right Alias l-to-r Funcon right-to-left Alias r-to-l Funcon sequential Alias seq Funcon effect Funcon choice Funcon if-true-else Alias if-else Funcon while-true Alias while Funcon do-while-true Alias do-while Funcon interleave Datatype yielding Funcon signal Funcon yielded Funcon yield Funcon yield-on-value Funcon yield-on-abrupt Funcon atomic ]
### Giving
[ Entity given-value Funcon initialise-giving Funcon give Funcon given Funcon no-given Funcon left-to-right-map Funcon interleave-map Funcon left-to-right-repeat Funcon interleave-repeat Funcon left-to-right-filter Funcon interleave-filter Funcon fold-left Funcon fold-right ]
### Binding
[ Type environments Alias envs Datatype identifiers Alias ids Funcon identifier-tagged Alias id-tagged Funcon fresh-identifier Entity environment Alias env Funcon initialise-binding Funcon bind-value Alias bind Funcon unbind Funcon bound-directly Funcon bound-value Alias bound Funcon closed Funcon scope Funcon accumulate Funcon collateral Funcon bind-recursively Funcon recursive ]
### Generating
[ Type atoms Entity used-atom-set Funcon initialise-generating Funcon fresh-atom Funcon use-atom-not-in ]
### Storing
[ Datatype locations Alias locs Type stores Entity store Funcon initialise-storing Funcon store-clear Datatype variables Alias vars Funcon variable Alias var Funcon allocate-variable Alias alloc Funcon recycle-variables Alias recycle Funcon initialise-variable Alias init Funcon allocate-initialised-variable Alias alloc-init Funcon assign Funcon assigned Funcon current-value Funcon un-assign Funcon structural-assign Funcon structural-assigned ]
### Linking
[ Datatype links Funcon initialise-linking Funcon link Funcon fresh-link Funcon fresh-initialised-link Alias fresh-init-link Funcon set-link Funcon follow-if-link ]
### Interacting
#### Input
[ Entity standard-in Funcon read ]
#### Output
[ Entity standard-out Funcon print ]
## Abnormal computation
### Terminating abruptly
[ Funcon stuck Entity abrupted Funcon finalise-abrupting Funcon abrupt Funcon handle-abrupt Funcon finally ]
### Failing
[ Datatype failing Funcon failed Funcon finalise-failing Funcon fail Funcon else Funcon else-choice Funcon checked Funcon check-true ]
### Throwing
[ Datatype throwing Funcon thrown Funcon finalise-throwing Funcon throw Funcon handle-thrown Funcon handle-recursively Funcon catch-else-throw ]
### Returning
[ Datatype returning Funcon returned Funcon finalise-returning Funcon return Funcon handle-return ]
### Breaking
[ Datatype breaking Funcon broken Funcon finalise-breaking Funcon break Funcon handle-break ]
### Continuing
[ Datatype continuing Funcon continued Funcon finalise-continuing Funcon continue Funcon handle-continue ]
### Controlling
[ Datatype continuations Funcon continuation Entity plug-signal Funcon hole Funcon resume-continuation Entity control-signal Funcon control Funcon delimit-current-continuation Alias delimit-cc ]
# Values
## Value Types
[ Type values Alias vals Type value-types Alias types Type empty-type Funcon is-in-type Alias is Funcon is-value Alias is-val Funcon when-true Alias when Type cast-to-type Alias cast Type ground-values Alias ground-vals Funcon is-equal Alias is-eq ]
## Primitive values
### Booleans
[ Datatype booleans Alias bools Funcon true Funcon false Funcon not Funcon implies Funcon and Funcon or Funcon exclusive-or Alias xor ]
### Integers
[ Type integers Alias ints Type integers-from Alias from Type integers-up-to Alias up-to Type bounded-integers Alias bounded-ints Type positive-integers Alias pos-ints Type negative-integers Alias neg-ints Type natural-numbers Alias nats Funcon natural-successor Alias nat-succ Funcon natural-predecessor Alias nat-pred Funcon integer-add Alias int-add Funcon integer-subtract Alias int-sub Funcon integer-multiply Alias int-mul Funcon integer-divide Alias int-div Funcon integer-modulo Alias int-mod Funcon integer-power Alias int-pow Funcon integer-absolute-value Alias int-abs Funcon integer-negate Alias int-neg Funcon integer-is-less Alias is-less Funcon integer-is-less-or-equal Alias is-less-or-equal Funcon integer-is-greater Alias is-greater Funcon integer-is-greater-or-equal Alias is-greater-or-equal Funcon binary-natural Alias binary Funcon octal-natural Alias octal Funcon decimal-natural Alias decimal Funcon hexadecimal-natural Alias hexadecimal Funcon integer-sequence ]
### Floats
[ Datatype float-formats Funcon binary32 Funcon binary64 Funcon binary128 Funcon decimal64 Funcon decimal128 Type floats Funcon float Funcon quiet-not-a-number Alias qNaN Funcon signaling-not-a-number Alias sNaN Funcon positive-infinity Alias pos-inf Funcon negative-infinity Alias neg-inf Funcon float-convert Funcon float-equal Funcon float-is-less Funcon float-is-less-or-equal Funcon float-is-greater Funcon float-is-greater-or-equal Funcon float-negate Funcon float-absolute-value Funcon float-add Funcon float-subtract Funcon float-multiply Funcon float-multiply-add Funcon float-divide Funcon float-remainder Funcon float-sqrt Funcon float-integer-power Funcon float-float-power Funcon float-round-ties-to-even Funcon float-round-ties-to-infinity Funcon float-floor Funcon float-ceiling Funcon float-truncate Funcon float-pi Funcon float-e Funcon float-log Funcon float-log10 Funcon float-exp Funcon float-sin Funcon float-cos Funcon float-tan Funcon float-asin Funcon float-acos Funcon float-atan Funcon float-sinh Funcon float-cosh Funcon float-tanh Funcon float-asinh Funcon float-acosh Funcon float-atanh Funcon float-atan2 ]
### Characters
[ Type characters Alias chars Datatype unicode-characters Alias unicode-chars Type unicode-points Funcon unicode-character Alias unicode-char Funcon unicode-point Alias unicode Type basic-multilingual-plane-characters Alias bmp-chars Type basic-multilingual-plane-points Type iso-latin-1-characters Alias latin-1-chars Type iso-latin-1-points Type ascii-characters Alias ascii-chars Type ascii-points Funcon ascii-character Alias ascii-char Funcon utf-8 Funcon utf-16 Funcon utf-32 Funcon backspace Funcon horizontal-tab Funcon line-feed Funcon form-feed Funcon carriage-return Funcon double-quote Funcon single-quote Funcon backslash ]
### The null value
[ Datatype null-type Funcon null-value Alias null ]
## Composite values
### Sequences of values
[ Funcon length Funcon index Funcon is-in Funcon first Funcon second Funcon third Funcon first-n Funcon drop-first-n Funcon reverse Funcon n-of Funcon intersperse ]
### Datatypes
[ Funcon datatype-value Funcon datatype-value-id Funcon datatype-value-elements ]
### Tuples
[ Datatype tuples Funcon tuple-elements Funcon tuple-zip ]
### Lists
[ Datatype lists Funcon list Funcon list-elements Funcon list-nil Alias nil Funcon list-cons Alias cons Funcon list-head Alias head Funcon list-tail Alias tail Funcon list-length Funcon list-append ]
### Strings
[ Type strings Funcon string Funcon string-append Funcon to-string ]
### Vectors
[ Datatype vectors Funcon vector Funcon vector-elements ]
### Bits and bit vectors
[ Type bits Datatype bit-vectors Funcon bit-vector Type bytes Alias octets Funcon bit-vector-not Funcon bit-vector-and Funcon bit-vector-or Funcon bit-vector-xor Funcon bit-vector-shift-left Funcon bit-vector-logical-shift-right Funcon bit-vector-arithmetic-shift-right Funcon integer-to-bit-vector Funcon bit-vector-to-integer Funcon bit-vector-to-natural Funcon unsigned-bit-vector-maximum Funcon signed-bit-vector-maximum Funcon signed-bit-vector-minimum Funcon is-in-signed-bit-vector Funcon is-in-unsigned-bit-vector ]
### Sets
[ Type sets Funcon set Funcon set-elements Funcon is-in-set Funcon is-subset Funcon set-insert Funcon set-unite Funcon set-intersect Funcon set-difference Funcon set-size Funcon some-element Funcon element-not-in ]
### Maps
[ Type maps Funcon map Funcon map-elements Funcon map-lookup Alias lookup Funcon map-domain Alias dom Funcon map-override Funcon map-unite Funcon map-delete ]
### Multisets (bags)
[ Type multisets Funcon multiset Funcon multiset-elements Funcon multiset-occurrences Funcon multiset-insert Funcon multiset-delete Funcon is-submultiset ]
### Trees
[ Datatype trees Funcon tree Funcon tree-root-value Funcon tree-branch-sequence Funcon single-branching-sequence Funcon forest-root-value-sequence Funcon forest-branch-sequence Funcon forest-value-sequence ]
### Graphs
[ Type directed-graphs Funcon is-cyclic Funcon topological-sort ]
### References and pointers
[ Datatype references Funcon reference Type pointers Funcon dereference ]
### Records
[ Datatype records Funcon record Funcon record-map Funcon record-select ]
### Variants
[ Datatype variants Funcon variant Funcon variant-id Funcon variant-value ]
### Classes
[ Datatype classes Funcon class Funcon class-instantiator Funcon class-feature-map Funcon class-superclass-name-sequence Funcon class-name-tree Funcon is-subclass-name Funcon class-name-single-inheritance-feature-map ]
### Objects
[ Datatype objects Funcon object Funcon object-identity Funcon object-class-name Funcon object-feature-map Funcon object-subobject-sequence Funcon object-tree Funcon object-single-inheritance-feature-map ]
## Abstraction values
### Generic abstractions
[ Type abstractions Funcon abstraction Funcon closure Funcon enact ]
### Functions
[ Datatype functions Funcon function Funcon apply Funcon supply Funcon compose Funcon uncurry Funcon curry Funcon partial-apply ]
### Patterns
[ Datatype patterns Funcon pattern Funcon pattern-any Funcon pattern-bind Funcon pattern-type Funcon pattern-else Funcon pattern-unite Funcon match Funcon match-loosely Funcon case-match Funcon case-match-loosely Funcon case-variant-value ]