An algebra is just a type τ with some functions and identities. These functions take differing numbers of arguments of type τ and produce a τ; uncurried, they all look like (τ, τ,…, τ) → τ. They can also have "identities"—elements of τ that have special behavior with some of…
Separating state and behavior
With an ADT you can enforce strict separation of algebra & interpretation (D. Ghosh)…