úÎ!(0F      !"#$%&'()*+,-./0123456789:;<=>?@ABCDENone 456>EHSVXŒ  recursion Base functor for a list of type [a]. recursion&Catamorphism. Folds a structure. (see  Qhttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.41.125&rep=rep1&type=pdfhere) recursion7Anamorphism, meant to build up a structure recursively. recursion5Hylomorphism; fold a structure while buildiung it up.! recursionVPrepromorphism. Fold a structure while applying a natural transformation at each step." recursionWPostpromorphism. Build up a structure, applying a natural transformation along the way.# recursionA mutumorphism.& recursion<Catamorphism collapsing along two data types simultaneously.' recursionZygomorphism (see  -http://www.iis.sinica.edu.tw/~scm/pub/mds.pdfhere for a neat example)( recursion Paramorphism) recursion]Gibbons' metamorphism. Tear down a structure, transform it, and then build up a new structure* recursion›Erwig's metamorphism. Essentially a hylomorphism with a natural transformation in between. This allows us to use more than one functor in a hylomorphism.+ recursionMendler's catamorphism, recursionMendler's histomorÆsm- recursionElgot algebra (see  https://arxiv.org/abs/cs/0609040 this paper). recursion(Anamorphism allowing shortcuts. Compare 0/ recursionCo-(Elgot algebra)0 recursionApomorphism. Compare ..1 recursionShould satisfy: 1 F = G 4  !"#$%&'()*+,-./01234  !"#'(0-/.)*&,+$% 231H      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFDGHI(recursion-2.2.1.0-25m8mgExt28BZtURdKiyZaControl.RecursionMuNuFixunFix NonEmptyFListFConsNil Corecursiveembed RecursiveprojectBasecataanahylocataMparaMzygoMzygoM'scolioMscolioM'anaMhyloMelgotMmicroMcoelgotMlambekcolambekprepropostpromutumutuMmutuM'scoliozygoparametameta'mcatamhistoelgotmicrocoelgotapo transversehoistrefix$fRecursiveNatural$fCorecursiveNatural$fCorecursive[] $fRecursive[]$fCorecursiveNonEmpty$fRecursiveNonEmpty$fCorecursiveFix$fRecursiveFix$fCorecursiveNu $fRecursiveNu$fCorecursiveMu $fRecursiveMu$fFunctorListF$fFoldableListF$fTraversableListF$fFunctorNonEmptyF$fFoldableNonEmptyF$fTraversableNonEmptyFbaseData.Traversable sequenceAGHC.Basepure