QLi_      !"#$%&'()*+,-./0123456789:;<=>?@ABC 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.orgHDatatype 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 The type class Regular. captures the structural representation of a 8 type and the corresponding embedding-projection pairs. ITo be able to use the generic functions, the user is required to provide ! an instance of this type class. The type family PF/ represents the pattern functor of a datatype. ITo be able to use the generic functions, the user is required to provide " an instance of this type family. !The well-known fixed-point type. 7Structure type to store the name of a record selector. 3Structure type to store the name of a constructor. ,Structure type for fields of a constructor. +Structure type for alternatives in a type. 'Structure type for empty constructors. !%Structure type for recursive values. $$Structure type for constant values. '  !"#$%&'$%&!"#     !"#"#$%&%& non-portable experimentalgenerics@haskell.org'KGiven the type and the name (as string) for the pattern functor to derive,  generate the Constructor' instances, the Selector' instances and the    instance. (-Given a datatype name, derive datatypes and  instances of class  . )-Given a datatype name, derive datatypes and  instances of class . *0Given the type and the name (as string) for the ) pattern functor to derive, generate the    instance. +Derive only the  instance. Not needed if *  is used. '()*+'()*+'()*+ non-portable experimentalgenerics@haskell.org.GReturn the name of all the constructors of the type of the given term. ,-.,-.,--. non-portable experimentalgenerics@haskell.org/The Crush? class defines a right-associative crush on functorial values. _.Associativity of the binary operator used for 0 `Right-associative aLeft-associative 2<Flatten a structure by collecting all the elements present. /01234/02134/001234 non-portable experimentalgenerics@haskell.org5675675667 non-portable experimentalgenerics@haskell.org85The class unfold explains how to convert a coalgebra ; and a seed  into a representation. <2The class fold explains how to convert an algebra  ?) into a function from functor to result. @Fold with convenient algebras. BHFor constructing algebras it is helpful to use this pairing combinator. 89:;<=>?@AB ?><=@;:89AB 899:;<==>?@AB  non-portable experimentalgenerics@haskell.orgCThe GMap) class defines a monadic functorial map. bcCDCDCDD  non-portable experimentalgenerics@haskell.orgEThe LR class defines two functions, leftf and rightf, which should & produce different functorial values. HThe LRBase class defines two functions, leftb and rightb , which " should produce different values. KGProduces a value which should be different from the value returned by  right. LGProduces a value which should be different from the value returned by  left. EFGHIJKLHIJEFGKLEFGFGHIJIJKL  non-portable experimentalgenerics@haskell.orgMNOPQMNQOPMNNOPQ  non-portable experimentalgenerics@haskell.orgR;A general class for expressing deep seq. It is used in the %$ case for  the generic seq. 'We do not give an instance of the form  @instance (Regular a, Seq (PF a)) => DeepSeq a where dseq = gdseq J because this requires undecidable instances. However, any type for which @ there is a generic instance can be given a trivial instance of R  by  using V . T The class for generic deep seq. VDeep, generic version of seq. RSTUVRSTUVRSSTUUV  non-portable experimentalgenerics@haskell.orgWThe Show! class defines a show on values. WXYZWXZYWXXYZ non-portable experimentalgenerics@haskell.org[The Zip3 class defines a monadic zip on functorial values. ]JFunctorial zip with a non-monadic function, resulting in a monadic value. ^4Partial functorial zip with a non-monadic function. [\]^[\]^[\\]^ non-portable experimentalgenerics@haskell.org,bc,-./0123456789:;<=>?@ABCDEFGHIJKLRSTUV[\]^ non-portable experimentalgenerics@haskell.orgXbc  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLRSTUV[\]^d !"#$%%&''())*+,--../00123456789:;<=>?@ABCDEFGHIJKLM N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d efghijklmnomnpq regular-0.2Generics.Regular.SelectorGenerics.Regular.ConstructorGenerics.Regular.BaseGenerics.Regular.TH#Generics.Regular.Functions.ConNames Generics.Regular.Functions.CrushGenerics.Regular.Functions.EqGenerics.Regular.Functions.FoldGenerics.Regular.Functions.GMapGenerics.Regular.Functions.LRGenerics.Regular.Functions.ReadGenerics.Regular.Functions.SeqGenerics.Regular.Functions.ShowGenerics.Regular.Functions.ZipGenerics.Regular.FunctionsGenerics.RegularSelectorselName AssociativityNotAssociativeRightAssociativeLeftAssociativeFixityInfixPrefix ConstructorconName conFixity conIsRecordRegularfromtoPFFixInoutSunSCunC:*::+:RLUIunIKunK deriveAllderiveConstructorsderiveSelectors deriveRegularderivePFConNames hconNamesconNamesCrushcrushflattenrflattenlcrushrcrushlEqeqfeqUnfoldcoalg CoAlgebraCoAlgFoldalgAlgebraAlgfoldunfold&GMapfmapMLRleftfrightfLRBaseleftbrightbleftrightReadhreaderreadPrec readsPrecreadDeepSeqdseqSeqgseqgdseqShow hshowsPrecshowsshowZipfzipMfzipfzip'Assoc AssocRight AssocLeftbaseGHC.BaseFunctorfmap