úÎ " ˜0      !"#$%&'()*+,-./ non-portable experimentalgenerics@haskell.org LSome functions need to have their types desugared in order to make programs = that use them typable. Desugaring consists in transforming `inline' type Q family applications into equality constraints. This is a strangeness in current F versions of GHC that hopefully will be fixed sometime in the future. 8Type family describing the pattern functor of a system. Unlifted version of . Unlifted version of . 8Is used to indicate the type (within the system) that a $ particular constructor injects to. <Represents products (sequences of fields of a constructor). 0Represents sums (choices between constructors). <Represents constant types that do not belong to the system. =Represents recursive positions. The first argument indicates / which type (within the system) to recurse on. Destructor for . Destructor for '(:>:)'.       non-portable experimentalgenerics@haskell.org The function  takes a functor f. All the recursive instances 2 in that functor are wrapped by an application of r. The argument to  # takes a function that transformes r occurrences into r'  occurrences, for every ix". In order to associate the index ix  with the correct system s, the argument to hmap is additionally $ parameterized by a witness of type s ix. Monadic version of .  non-portable experimentalgenerics@haskell.org !"#$%&'() $%#&"'! () !"#$%&'() non-portable experimentalgenerics@haskell.org*Normal version. +Monadic version of *. ,Applicative version of *. *+,*+,*+, non-portable experimentalgenerics@haskell.org-./-./-../ non-portable experimentalgenerics@haskell.org0  !"#$%&'()*+,-./0      !"#$%&'()*+,-./012 multirec-0.1Generics.MultiRec.BaseGenerics.MultiRec.HFunctorGenerics.MultiRec.FoldGenerics.MultiRec.ComposGenerics.MultiRec.EqGenerics.MultiRecIxfrom_to_fromtoindexStrPFK0unK0I0unI0:>:Tag:*::+:RLKunKIunIunTagHFunctorhmapAhmaphmapM:->AlgPart ParaAlgebra CoAlgebraAlgebrafoldunfoldpara&tagcomposcomposMcomposAHEqheqeq