In a algebra like f a -> a
, a
is called the carrier.
A variation of generalized algebras that swaps the parameters from f (w a) -> a
to w (f a) -> a
. The name is taken from the “Elgot algebra” and is indicated in recursion scheme libraries with an e
prefix.
A fixed-point operator implemented using native recursion. Depending on evaluation model of the language, it may be more akin to Mu (in a strict language like Scala) or Nu (in a lazy language like Haskell). It is generally unimplementable in total languages, but the clarity of its definition makes it useful for teaching recursion schemes.
Any of a number of type constructors that have the (poly)kind (k -> k) -> k
(most commonly seen where k = *
). Mu, Nu, and Fix are the most-frequently seen.
Sometimes represented by the Greek lowercase eta (η).
zygo- is a prefix meaning something like “paired” (think of a zygote, which is a cell formed by the pairing of two gametes). And the algebra used for a zygomorphism is paired like that – f (ann, a) -> a
. It pairs the carrier with an extra value providing context to the algebra.