úÎ &6      !"#$%&'()*+,-./012345 non-portable experimentalsjoerd@w3future.com Safe-Inferred-The higher order free functor for constraint c. Natural transformations.  counit = rightAdjunct id leftAdjunct f = f . unit6The free monad of a functor.  7896:   7896: non-portable experimentalsjoerd@w3future.comNone/The higher order cofree functor for constraint c. Natural transformations.  unit = leftAdjunct id rightAdjunct f = counit . f;!The cofree comonad of a functor. ;<=>?  ;<=>? non-portable experimentalsjoerd@w3future.comNone Products of Monoids are Monoid s themselves. But coproducts of Monoid s are not.  However, the free Monoid applied to the coproduct is a Monoid-, and it is the coproduct in the category of Monoids. O This is also called the free product, and generalizes to any algebraic class.  The free functor for constraint c. & counit = rightAdjunct id' leftAdjunct f = f . unit !"#$%&'()*+,-@ABCDEFG !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+,-@ABCDEFG non-portable experimentalsjoerd@w3future.comNone."The cofree functor for constraint c. 3 unit = leftAdjunct id4 rightAdjunct f = counit . f ./012345HIJK./012345./012345 ./012345HIJKL             !"#$$  % &'()*+,-./0123456789:;<free-functors-0.4Data.Functor.HFreeData.Functor.HCofreeData.Functor.FreeData.Functor.CofreeHFreerunHFree:~>unit rightAdjunctcounit leftAdjuncthfmapliftFree lowerFreeconvertiterwrapHCofree liftCofree lowerCofreecoiterunwrap InitialObject Coproduct LiftAFree getLiftAFreeFreerunFree rightAdjunctF rightAdjunctT convertClosed coproductinLinRinitialCofree leftAdjunctF $fMonadHFree$fAlternativeHFree$fApplicativeHFree$fApplicativeHFree0$fFunctorHFree$fComonadHCofree$fTraversableHCofree$fFoldableHCofree$fFoldableHCofree0$fFunctorHCofree$fTraversableFree$fFoldableFree$fAlgebrasLiftAFree$fAlgebrafFree $fComonadFree $fMonadFree$fApplicativeFree $fFunctorFree $fMonadCofree$fApplicativeCofree$fComonadCofree$fFunctorCofree