úÎ_[Vؒ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  € ‚ƒ„…†‡ˆ‰Š‹ŒŽ‘ non-portable experimentalgenerics@haskell.org non-portable experimentalgenerics@haskell.org HDatatype to represent the fixity of a constructor. An infix declaration + directly corresponds to an application of .  6Class for datatypes that represent data constructors. % For non-symbolic constructors, only   has to be defined. 8 The weird argument is supposed to be instantiated with C from  base, hence the complex kind.        non-portable experimentalgenerics@haskell.org" /Semi-decidable equality for types of a family. CClass that contains the shallow conversion functions for a family. #Class for the members of a family. 8Type family describing the pattern functor of a family. Unlifted version of '&. Unlifted version of *). Represents constructors. $Is used to indicate the type that a $ particular constructor injects to. <Represents products (sequences of fields of a constructor). !0Represents sums (choices between constructors). "#$(Represents constructors without fields. %&<Represents constant types that do not belong to the family. '()=Represents recursive positions. The first argument indicates  which type to recurse on. *+,Destructor for '(:>:)'. -Destructor for . .+For backwards-compatibility: a synonym for . /  !"#$%&'()*+,-.")*+&'($%!#" ,-. "  !#""#$%%&'('()*+*+,-. non-portable experimentalgenerics@haskell.org/01 The function 1 takes a functor f. All the recursive instances 2 in that functor are wrapped by an application of r. The argument to  1# takes a function that transformes r occurrences into r'  occurrences, for every ix". In order to associate the index ix  with the correct family phi, the argument to hmap is additionally $ parameterized by a witness of type phi ix. 2Monadic version of 1. /012/012/0012 non-portable experimentalgenerics@haskell.org3456789:;<=>?@ABCDEFGHI3456789:;<=>?@ABCDEFGHI@?>=AB<;:9CD8765EF43GHI3456789:;<=>?@ABCDEFGHI non-portable experimentalgenerics@haskell.orgJNormal version. KMonadic version of J. LApplicative version of J. JKLJKLJKL non-portable experimentalgenerics@haskell.orgMNO’0For constant types, we make use of the standard  equality function. MNOMNOMNNO non-portable experimentalgenerics@haskell.orgPQRSTPQRSTPQRSTPQRQRST  non-portable experimentalgenerics@haskell.orgU6Given a list of datatype names, derive datatypes and  instances of class  . V3Given the name of the index GADT, the names of the 7 types in the family, and the name (as string) for the ) pattern functor to derive, generate the Ix and   instances.  IMPORTANT&: It is assumed that the constructors 9 of the GADT have the same names as the datatypes in the  family. W)Compatibility. Use deriveFamily instead. XDerive only the  instance. Not needed if V  is used. YDerive only the  instances. Not needed if V  is used. ZDerive only the  instance. Not needed if V  is used. [Derive only the   instance. Not needed if V  is used. “”•–—˜™š›œžŸ ¡¢£€UVWXYZ[UVWXYZ[UVWXYZ[  non-portable experimentalgenerics@haskell.org\]^\]^\]^\]]^  non-portable experimentalgenerics@haskell.org_`abcdefghijklmnopqrstu_`abcdefghijklmnopqrstulkjimnhgfeopdcbaqr`_stu_`abcdefghijklmnopqrstu  non-portable experimentalgenerics@haskell.orgvwxyz¥0For constant types, we make use of the standard  show function. vwxyzvwxyzvwwxyz  non-portable experimentalgenerics@haskell.org{<The class fold explains how to convert a convenient algebra  ~: back into a function from functor to result, as required " by the standard fold function. |}AThe algebras passed to the fold have to work for all index types C in the family. The additional witness argument is required only  to make GHC's typechecker happy. ~<The type family we use to describe the convenient algebras. Fold with convenient algebras. €?For constructing algebras that are made of nested pairs rather D than n-ary tuples, it is helpful to use this pairing combinator. {|}~€~}{|€{||}~€ non-portable experimentalgenerics@haskell.org<The class fold explains how to convert a convenient algebra  „: back into a function from functor to result, as required " by the standard fold function. ‚ƒAThe algebras passed to the fold have to work for all index types C in the family. The additional witness argument is required only  to make GHC's typechecker happy. „<The type family we use to describe the convenient algebras. …Fold with convenient algebras. †?For constructing algebras that are made of nested pairs rather D than n-ary tuples, it is helpful to use this pairing combinator. ‚ƒ„…†„ƒ‚…†‚‚ƒ„…† non-portable experimentalgenerics@haskell.org ‡ˆ‰Š‹ŒŽ‘ ‡ˆ‰Š‹ŒŽŠ‘ ‰Š‡ˆ‹ŒŽ‘ ‡ˆˆ‰ŠŠ‹ŒŽ‘ non-portable experimentalgenerics@haskell.orgZ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTvwxyz§ !"#$%&&'(()**+,--./0112234456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ _ ` a b c d e f g h = > ? @ A B C D E F G H I J K L M N O P Q R S i j k l m n o I p K QnoIpKQqrstuvwxyz{| } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž ‘multirec-0.5.1Generics.MultiRec.TEqGenerics.MultiRec.ConstructorGenerics.MultiRec.BaseGenerics.MultiRec.HFunctorGenerics.MultiRec.FoldGenerics.MultiRec.ComposGenerics.MultiRec.EqGenerics.MultiRec.HFixGenerics.MultiRec.THGenerics.MultiRec.ConNamesGenerics.MultiRec.FoldKGenerics.MultiRec.ShowGenerics.MultiRec.FoldAlgGenerics.MultiRec.FoldAlgKGenerics.MultiRec.ReadGenerics.MultiRec:=:Reflcast AssociativityNotAssociativeRightAssociativeLeftAssociativeFixityInfixPrefix ConstructorconName conFixityEqSeqSFamfromtoElproofPFK0unK0I0unI0C:>:Tag:*::+:RLUKunKIunIunTagunCindexHFunctorhmapAhmaphmapM:->AlgPart ParaAlgebraF ParaAlgebraF' ParaAlgebra ParaAlgebra' CoAlgebraF CoAlgebraF' CoAlgebra CoAlgebra'AlgebraF AlgebraF'AlgebraAlgebra'foldfoldMunfoldunfoldMparaparaM&tagconcomposcomposMcomposAHEqheqeqHFixHInhouthfromhtoderiveConstructors deriveFamily deriveSystemderivePFderiveEl deriveFam deriveEqSConNames hconNamesconNamesHShow hShowsPrecAlg showsPrecshowspacesFoldalgAlg HReadPrechreader CountAtoms countatomsreadConsreadPrefixCons readInfixConsreadNoArgsConsreadPrec readsPrecread $fHEqphiKconstrInstancestripRecordNamesmkData mkInstancepfTypepfConpfField elInstancemkFrommkTomkProoffromContoCon fromFieldtoFieldfieldlrPlrE $fHShowphiKappPrec