th_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ (c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred=(c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred=tDatatype to represent the fixity of a constructor. An infix declaration directly corresponds to an application of  . \Class for datatypes that represent data constructors. For non-symbolic constructors, only  M has to be defined. The weird argument is supposed to be instantiated with C& from base, hence the complex kind.        (c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred3=JK The type class Regularg captures the structural representation of a type and the corresponding embedding-projection pairs. kTo 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. lTo 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. ! !"#$%&'(_`abcde'  !"#$%&'('&'(#$%!"    !"#$%&'(_`abcde#(c) 2008--2009 Universiteit UtrechtBSD3generics@haskell.org experimental non-portableNone)Given the type and the name (as string) for the pattern functor to derive, generate the Constructor' instances, the Selector' instances and the  instance.*AGiven a datatype name, derive datatypes and instances of class  .+AGiven a datatype name, derive datatypes and instances of class .,YGiven 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.#)*+,-fghijklmnopqrstuvwxyz{|}~)*+,-)*+,-#)*+,-fghijklmnopqrstuvwxyz{|}~(c) 2009 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred234=JKM0GReturn the name of all the constructors of the type of the given term. ./0./0./0 ./0(c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-InferredJK1The Crush? class defines a right-associative crush on functorial values. 3.Associativity of the binary operator used for 2 4Right-associative 5Left-associative 6<Flatten a structure by collecting all the elements present. 7<Flatten a structure by collecting all the elements present. 123456789 123456789 123547689 123546789(c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred234=JK:5The class unfold explains how to convert a coalgebra =% and a seed into a representation. >6The class fold explains how to convert an algebra A) into a function from functor to result. BFold with convenient algebras. DHFor constructing algebras it is helpful to use this pairing combinator. Selectors are ignored. Constructors are ignored. 7For a produt, the coalgebra is a pair of the two arms. FFor a sum, the coalgebra produces either the left or the right side. [Units can only produce units, so we use the singleton type to encode the lack of choice. GFor an identity, we produce a new seed to create the recursive result. 9For a constant, we produce a constant value as a result. Selectors are ignored. Constructors are ignored. sFor a product where the left hand side is an identity, we take the recursive result as an additional argument. gFor a product where the left hand side is a constant, we take the value as an additional argument. 2For a sum, the algebra is a pair of two algebras. CFor an identity, we turn the recursive result into a final result. (For a unit, no arguments are available. 8For a constant, we take the constant value to a result. *:;<=>?@ABCD :;<=>?@ABCD A@>?B=<:;CD(:;<=>?@ABCDD(c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-InferredJKEThe GMap) class defines a monadic functorial map. EFEFEFEF (c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred3JKGThe LR class defines two functions, leftf and rightf7, which should produce different functorial values. JThe LRBase class defines two functions, leftb and rightb,, which should produce different values. MIProduces a value which should be different from the value returned by right. NIProduces a value which should be different from the value returned by left. GHIJKLMNGHIJKLMNJKLGHIMNGHIJKLMN (c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-InferredJKOThe Zip3 class defines a monadic zip on functorial values. QJFunctorial zip with a non-monadic function, resulting in a monadic value. R4Partial functorial zip with a non-monadic function. OPQROPQROPQR OPQR(c) 2010 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred234=JK'./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR (c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred3JK STUSTUSTU STU (c) 2010 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred234JKMVWXYZVWXYZVWZXYVWXYZ (c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable  Safe-Inferred3JK[The Show! class defines a show on values. [\]^[\]^[\^] [\]^(c) 2008 Universiteit Utrecht BSD3 generics@haskell.org  experimental  non-portable NoneS  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR !"#$%&'(()**+,,-./0011233456789:;<=>?@ABCDEFGHIJKLMNOPQR S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i jklmnopqrstuvwxyz{|}~  regular-0.3.4.4Generics.Regular.Functions.GMapGenerics.Regular.SelectorGenerics.Regular.ConstructorGenerics.Regular.BaseGenerics.Regular.TH#Generics.Regular.Functions.ConNames Generics.Regular.Functions.CrushGenerics.Regular.Functions.FoldGenerics.Regular.Functions.LRGenerics.Regular.Functions.ZipGenerics.Regular.Functions.EqGenerics.Regular.Functions.ReadGenerics.Regular.Functions.ShowGenerics.Regular.FunctionsGenerics.RegularbaseGHC.BasefmapFunctorSelectorselName AssociativityNotAssociativeRightAssociativeLeftAssociativeFixityInfixPrefix ConstructorconName conFixity conIsRecordRegularfromtoPFFixInoutSunSCunC:*::+:RLUIunIKunK deriveAllderiveConstructorsderiveSelectors deriveRegularderivePFConNames hconNamesconNamesCrushcrushAssoc AssocRight AssocLeftflattenrflattenlcrushrcrushlUnfoldcoalg CoAlgebraCoAlgFoldalgAlgebraAlgfoldunfold&GMapfmapMLRleftfrightfLRBaseleftbrightbleftrightZipfzipMfzipfzip'EqeqfeqReadhreaderreadPrec readsPrecreadShow hshowsPrecshowsshow $fFunctorS $fFunctorC $fFunctor:*: $fFunctor:+: $fFunctorU $fFunctorK $fFunctorI deriveInstconstrInstanceselectInstance typeVariablestyVarBndrToNamestripRecordNamesgenName mkConstrData mkSelectDatamkConstrInstancemkConstrInstanceWithmkSelectInstancepfTypepfCondataDeclToTypepfFieldpfField'mkFrommkTofromCon fromField fromField'toContoFieldtoField'fieldlrPlrE$fLiftAssociativity $fLiftFixity $fConNamesK $fConNamesU $fConNamesI $fConNames:*: $fConNamesS $fConNamesC $fConNames:+:$fCrushS$fCrushC $fCrush:*: $fCrush:+:$fCrushU$fCrushK$fCrushITFCo:R:CoAlgSsTFCo:R:CoAlgCsTFCo:R:CoAlg:*:sTFCo:R:CoAlg:+:sTFCo:R:CoAlgUsTFCo:R:CoAlgIsTFCo:R:CoAlgKs TFCo:R:AlgSr TFCo:R:AlgCrTFCo:R:Alg:*:rTFCo:R:Alg:*:r1TFCo:R:Alg:+:r TFCo:R:AlgIr TFCo:R:AlgUr TFCo:R:AlgKr $fUnfoldS $fUnfoldC $fUnfold:*: $fUnfold:+: $fUnfoldU $fUnfoldI $fUnfoldK$fFoldS$fFoldC $fFold:*: $fFold:*:0 $fFold:+:$fFoldI$fFoldU$fFoldKTFCo:R:Alg:*:r0$fGMapS$fGMapC $fGMap:*: $fGMap:+:$fGMapU$fGMapK$fGMapI$fLRS$fLRC$fLR:*:$fLR:+:$fLRU$fLRK$fLRI $fLRBase[] $fLRBaseChar$fLRBaseInteger $fLRBaseInt$fZipS$fZipC$fZip:*:$fZip:+:$fZipU$fZipK$fZipI$fEqS$fEqC$fEq:*:$fEq:+:$fEqU$fEqK$fEqI CountAtoms countatomsreadConsreadPrefixConsbraces readInfixConsreadNoArgsConsappPrec$fReadS$fReadC$fReadC0$fReadC1$fReadC2$fReadC3 $fRead:*: $fRead:+:$fReadI$fReadK$fReadU $fCountAtomsS$fCountAtoms:*: $fCountAtomsI $fCountAtomsK showBraces showsPrec$fShowS$fShowC $fShow:*: $fShow:+:$fShowU$fShowK$fShowI