Structure functors

Functors used in building up structures for species
generation. Many of these functors are already defined elsewhere,
in other packages; but to avoid a plethora of imports, inconsistent
naming/instance schemes, etc., we just redefine them here.

Higher-order fixpoint. Mu f a is morally isomorphic to f
(Mu f) a, except that we actually need a level of indirection.
In fact Mu f a is isomorphic to Interp f (Mu f) a; f
is a code which is interpreted by the Interp type function.