úÎ KŠAæ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œSafe16ŠBase Functor for (C) 2008-2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> experimental non-portableSafe&'016;<=>FQTV)YBase functor of [].%Fokkinga's postpromorphism&A generalized postpromorphism,Fokkinga's prepromorphism5A generalized catamorphism6A generalized catamorphism8A generalized anamorphism9A generalized anamorphism;A generalized hylomorphism<A generalized hylomorphism1Lambek's lemma provides a default definition for ( in terms of ) and "ž>The dual of Lambek's lemma, provides a default definition for " in terms of # and (D!A specialized, faster version of B for .E!A specialized, faster version of B for .NCourse-of-value iterationTMendler-style iterationU'Mendler-style course-of-value iterationVElgot algebrasWElgot coalgebras: 0http://comonad.com/reader/2008/elgot-coalgebras/X!Zygohistomorphic prepromorphisms:&A corrected and modernized version of Chttp://www.haskell.org/haskellwiki/Zygohistomorphic_prepromorphismsY Effectful 2.!This is a type specialisation of )./An example terminating a recursion immediately:NcataA (\alg -> case alg of { Nil -> pure (); Cons a _ -> Const [a] }) "hello" Const "h"ZAn effectful version of B. Properties: Z Ÿ =    Examples:OThe weird type of first argument allows user to decide an order of sequencing:Btransverse (\x -> print (void x) *> sequence x) "foo" :: IO String Cons 'f' () Cons 'o' () Cons 'o' ()Nil"foo"Btransverse (\x -> sequence x <* print (void x)) "foo" :: IO StringNil Cons 'o' () Cons 'o' () Cons 'f' ()"foo"ĄWRead a list (using square brackets and commas), given a function for reading elements.c/It may be better to work with the instance for Ē directly.#a (Base t)-coalgebraseedresulting fixed point)a (Base t)-algebra fixed pointresult5a distributive lawa (Base t)-w-algebra fixed point6a distributive lawa (Base t)-w-algebra fixed point8a distributive lawa (Base t)-m-coalgebraseed9a distributive lawa (Base t)-m-coalgebraseedG(A distributive for semi-mutual recursionC !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZC. ADE'()*+,-J5FHNO=>RS7/0GIPQ?@!"#$%&8:KLM1;BC26394<TUVWXYZSafeQVAK –Rules of renaming data names—9Build base functor with a sensible default configuration.e.g. `data Expr a = Lit a | Add (Expr a) (Expr a) | Expr a :* [Expr a] deriving (Show) — ''Expr  will create Gdata ExprF a x = LitF a | AddF x x | x :*$ [x] deriving (Ģ, Ī, Ĩ) type instance Base (Expr a) = ExprF a instance  Recursive (Expr a) where project (Lit x) = LitF x project (Add x y) = AddF x y project (x :* y) = x :*$ y instance  Corecursive (Expr a) where embed (LitF x) = Lit x embed (AddF x y) = Add x y embed (x :*$ y) = x :* y  — = ˜ ™ Notes:—n works properly only with ADTs. Existentials and GADTs aren't supported, as we don't try to do better than  lhttps://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#deriving-functor-instancesGHC's DeriveFunctor.˜/Build base functor with a custom configuration.™Default – : append F or $, to data type, constructors and field names.š"How to name the base functor type.Default is to append F or $.›1How to rename the base functor type constructors.Default is to append F or $.œ=How to rename the base functor type field names (in records).Default is to append F or $.Ķ$makes clauses to rename constructors§Extract type variablesĻ&Apply arguments to a type constructor.ĐProvides substitution for types–—˜™š›œ—˜–™š›œSafeAÁŠŦŽ­ŪŊ°ąē       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĒĨͧĻĐŠĒĨŦĒŽ­ĒĢŪŊ°ąēģīĩķ·ļđšŧ,recursion-schemes-5.1-EW9iKnmBF1L9EOixxRELiKData.Functor.BaseData.Functor.FoldableData.Functor.Foldable.TH Data.ListNonEmptyPaths_recursion_schemes NonEmptyFheadtail$fBitraversableNonEmptyF$fBifoldableNonEmptyF$fBifunctorNonEmptyF$fTraversableNonEmptyF$fFoldableNonEmptyF$fFunctorNonEmptyF$fRead1NonEmptyF$fRead2NonEmptyF$fShow2NonEmptyF$fShow1NonEmptyF$fOrd1NonEmptyF$fOrd2NonEmptyF$fEq1NonEmptyF$fEq2NonEmptyF $fEqNonEmptyF$fOrdNonEmptyF$fShowNonEmptyF$fReadNonEmptyF$fGenericNonEmptyF$fGeneric1NonEmptyFNuMuFixListFNilCons Corecursiveembedanaapopostprogpostpro RecursiveprojectcataparagparapreprogpreproBasedistPara distParaThylofoldunfoldrefoldgcatagfolddistCataganagunfolddistAnaghylogrefoldfutugfutudistFutu distGFutuunfixhoistrefixhoistMuhoistNuzygodistZygogzygo distZygoTgapodistApodistGApo distGApoThistoghisto distHisto distGHistochronogchronomcatamhistoelgotcoelgotzygoHistoPreprocataA transverse$fCorecursiveF $fRecursiveF$fCorecursiveEither$fRecursiveEither$fCorecursiveMaybe$fRecursiveMaybe$fCorecursiveFreeT$fRecursiveFreeT$fCorecursiveFree$fRecursiveFree$fCorecursiveCofreeT$fRecursiveCofreeT$fCorecursiveCofree$fRecursiveCofree$fCorecursiveNatural$fRecursiveNatural$fCorecursiveNonEmpty$fRecursiveNonEmpty$fCorecursive[] $fRecursive[]$fBitraversableListF$fBifoldableListF$fBifunctorListF$fTraversableListF$fFoldableListF$fFunctorListF $fRead1ListF $fRead2ListF $fShow2ListF $fShow1ListF $fOrd1ListF $fOrd2ListF $fEq1ListF $fEq2ListF$fCorecursiveFix$fRecursiveFix $fReadFix $fShowFix$fOrdFix$fEqFix$fReadMu$fShowMu$fOrdMu$fEqMu$fCorecursiveMu $fRecursiveMu$fReadNu$fShowNu$fOrdNu$fEqNu $fRecursiveNu$fCorecursiveNu $fEqListF $fOrdListF $fShowListF $fReadListF$fGenericListF$fGeneric1ListF $fDataFix BaseRulesmakeBaseFunctormakeBaseFunctorWith baseRules baseRulesType baseRulesConbaseRulesFieldlambekcolambekbaseData.Traversable sequenceAGHC.Basepure _readListWithfree-5.1-17ELLDBfINcFZb4tghfGe0Control.Monad.Free.ChurchFFunctor Data.FoldableFoldable Traversable mkMorphismtypeVarsconAppsT substTypeversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName