úÎ$ ~A      !"#$%&'()*+,-./0123456789:;<=>?@Safe9:;<=0We need this class to make type resolution work.MClass that yields g-coalgebra homomorphisms between mutually recursive types.;Homomorphism of g-coalgebras paramterized by an f-coalgebraResolve nested functions.KClass that yields g-algebra homomorphisms between mutually recursive types.7Homomorphism of g-algebras parametrized by an f-algebraTEntangle two hylomorphisms. Not the same thing as a symplectomorphism from geometry. ,A dendromorphism entangles two catamorphisms Entangle three base functors. \Catamorphism collapsing along two data types simultaneously. Basically a fancy zygomorphism. =A micromorphism is an Elgot algebra specialized to unfolding.A monadic catamorphismA monadic anamorphismA monadic hylomorphism A g-algebra A g-coalgebra An f-algebraAn f-coalgebra  dummy type  dummy typeA (Base t)-algebraA (Base t')-algebra  dummy typeanother dummy typeA (Base t'')-algebra     None9:;<=+Entangle a list of functors. As an example, %entangleFunctors [(''Data, ''Codata)] will generate Ainstance SubHom DataF CodataF Data Codata instance SubType CodataEntangle types, creating a \ instance with their base functors. Note that this is rather strict with regards to naming.None23457:<=DR$We call our co-dependent data types  and #. They represent mutually recursiveA BertF-algebraBErnieF-algebra;xDendromorphism collapsing the tree. Note that we can use the same F-algebras here as we would in a normal catamorphism.<MWe can generate two functions by swapping the F-algebras and the dummy type.=5Catamorphism, which collapses the tree the usual way.$%&'C-./0123D9AB;<=>?$'%&-.1/0;<=>-./01$%&';=<>$%&'C-./0123D9AB;<=>?E      !"#$%&&'()*+,-../0123456789:;<=>?@ABCDE4recursion-schemes-ext-0.2.0.1-9YVi8AOAnHpCedB3zSnRNsData.Functor.Foldable.ExoticData.Functor.Foldable.Exotic.THData.Functor.Foldable.ExamplesDummydummyCoSubHomhomoCoSubTypeswitchSubHomhomo symplectochemadendro dendroTridicatamicrocataManaMhyloMentangleFunctors entanglePairErnieMultiplyListBertNumStringAdd $fShowErnie $fEqErnie$fGenericErnie $fNFDataErnie $fShowBert$fEqBert $fGenericBert $fNFDataBertErnieF MultiplyFListF$fCorecursiveErnie$fRecursiveErnie$fFunctorErnieF$fFoldableErnieF$fTraversableErnieFBertFNumFStringFAddF $fDummyErnie $fDummyBert$fCorecursiveBert$fRecursiveBert$fFunctorBertF$fFoldableBertF$fTraversableBertF $fSubTypeBert$fSubHomErnieFBertFErnieBertcollapseErnieSyntaxTreecollapseBertSyntaxTreecollapseErnieSyntaxTree'collapseBertSyntaxTree'$fSubTypeErnie$fSubHomBertFErnieFBertErnie bertAlgebra ernieAlgebra D:R:BaseErnie D:R:BaseBert