Q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ K L M N O P Q R S T U 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 { | } ~  Safe  #(c) 2008--2009 Universiteit UtrechtBSD3generics@haskell.org experimental non-portableNone*Indicates whether Generic(1) is being derived for a plain data type (DataPlain) or a data family instance (DataFamily). DataFamily bundles the Name of the data family instance's first constructor (for Name-generation purposes) and the types used to instantiate the instance.Like  GenericArity!, but bundling two things in the  case: The  of the last type parameter.XIf that last type parameter had kind k (where k is some kind variable), then it has  the kind variable . Otherwise, it has .7Indicates whether Generic or Generic1 is being derived.EWhether a type is not of kind *, is of kind *, or is a kind variable.BExpands all type synonyms in a type. Written by Dan Rosn in the  genifunctors package (licensed under BSD3).8Does a Type have kind * or k (for some kind variable k)?Returns  the kind variable  of a # if it exists. Otherwise, returns .jConcat together all of the StarKindStatuses that are IsKindVar and extract the kind variables' Names out."Returns True if a Type has kind *.GGets all of the type/kind variable names mentioned somewhere in a Type.BGets all of the kind variable names mentioned somewhere in a Kind.XGets all of the specified type/kind variable names mentioned in a Type. In contrast to ,  does not go into kinds of s.PIs the given type a type family constructor (and not a data family constructor)?*True if the type does not mention the Name)Construct a type via curried application.7Apply a type constructor name to type variable binders.HSplit an applied type into its individual components. For example, this: Either Int Char would split to this: [Either, Int, Char] ESplit a type signature by the arrows on its spine. For example, this: #forall a b. (a -> b) -> Char -> () would split to this: ([a, b], [a -> b, Char, ()]) )Like uncurryType, except on a kind level.KIf a VarT is missing an explicit kind signature, steal it from a TyVarBndr.KGenerate a list of fresh names with a common prefix, and numbered suffixes.Checks to see if the last types in a data family instance can be safely eta- reduced (i.e., dropped), given the other types. This checks for three conditions: +All of the dropped types are type variables%All of the dropped types are distinct<None of the remaining types mention any of the dropped typesdExtract the Name from a type variable. If the argument Type is not a type variable, throw an error.Is the given type a variable?Is the given kind a variable?Returns  is a  contains no type variables.Returns  is a  contains no kind variables.6Peel off a kind signature from a Type (if it has one).;Peel off a kind signature from a TyVarBndr (if it has one).9Does the given type mention any of the Names in the list?AAre all of the items in a list (which have an ordering) distinct?HThis uses Set (as opposed to nub) for better asymptotic time complexity.AVariant of foldr1 which returns a special element for empty lists#Extracts the name of a constructor.;Extracts the constructors of a data or newtype declaration.*Credit to Vctor Lpez Juan for this trick}One of the last type variables cannot be eta-reduced (see the canEtaReduce function for the criteria it would have to meet).Either the given data type doesn't have enough type variables, or one of the type variables to be eta-reduced cannot realize kind *.HDeriving Generic(1) doesn't work with ExistentialQuantification or GADTs>Cannot have a constructor argument of form (forall a1 ... an.  type) when deriving Generic(1)Cannot have a Generic(1) instance where the instance head's type is instantiated to be a more "saturated" type than the original data declaration. That means something like this would be rejected: {- LANGUAGE TypeInType (-} data Hm k (a :: k) deriving Generic1 Since having a Generic1 instance would force k to be instantiated with *, resulting in an instance Generic1 (Hm *) instead of instance Generic1 (Hm k)."Boilerplate for top level splices.-The given Name must meet one of two criteria: JIt must be the name of a type constructor of a plain data type or newtype.NIt must be the name of a data family instance or newtype instance constructor.,Any other value will result in an exception.One cannot derive Generic(1) instance for anything that uses DatatypeContexts, so check to make sure the Cxt field of a datatype is null.      !"#$%&'()*+,-./0123456789:;<=>?@ABCD      !"#$%&'()*+,-./0123456789:;<=>?@ABCD      !"#$%&'()*+,-./0123456789:;<=>?@ABCD#(c) 2008--2009 Universiteit UtrechtBSD3generics@haskell.org experimental non-portableNoneNGiven the type and the name (as string) for the type to derive, generate the Data instance, the  Constructor instances, and the Selector instances.?Given a datatype name, derive a datatype and instance of class Datatype.@Given a datatype name, derive datatypes and instances of class  Constructor.?Given a datatype name, derive datatypes and instances of class Selector.EFGHIJKLMNOPQRSTUV ESTUVEFGHIJKLMNOPQRSTUV#(c) 2008--2009 Universiteit UtrechtBSD3generics@haskell.org experimental non-portableNoneGiven the names of a generic class, a type to instantiate, a function in the class and the default implementation, generates the code for a basic generic instance.#A backwards-compatible synonym for .NGiven the type and the name (as string) for the type to derive, generate the Data instance, the  Constructor instances, the Selector instances, and the Representable0 instance.Like 0, except that the type variable binders in the Rep1 type synonym will have explicit kind signatures.NGiven the type and the name (as string) for the type to derive, generate the Data instance, the  Constructor instances, the Selector instances, and the Representable1 instance. Like 0, except that the type variable binders in the Rep11 type synonym will have explicit kind signatures. NGiven the type and the name (as string) for the type to derive, generate the Data instance, the  Constructor instances, the Selector instances, the Representable0 instance, and the Representable1 instance. Like  0, except that the type variable binders in the Rep and Rep12 type synonyms will have explicit kind signatures. eGiven the type and the name (as string) for the Representable0 type synonym to derive, generate the Representable0 instance. Like  0, except that the type variable binders in the Rep1 type synonym will have explicit kind signatures.eGiven the type and the name (as string) for the Representable1 type synonym to derive, generate the Representable1 instance.Like 0, except that the type variable binders in the Rep11 type synonym will have explicit kind signatures.Derive only the Rep0 type synonym. Not needed if   is used.Like /, except that the type variable binders in the Rep2 type synonym will have explicit kind signatures.Derive only the Rep1 type synonym. Not needed if  is used.Like /, except that the type variable binders in the Rep12 type synonym will have explicit kind signatures.Generates the Rep) type synonym constructor (as opposed to , which generates the type synonym declaration). After splicing it into Haskell source, it expects types as arguments. For example: type Rep (Foo a b) = $( ''Foo) a b Generates the Rep1) type synonym constructor (as opposed to , which generates the type synonym declaration). After splicing it into Haskell source, it expects types as arguments. For example: type Rep1 (Foo a b) = $( ''Foo) a b Generates the Rep) type synonym constructor (as opposed to X, which generates the type synonym declaration) applied to its type arguments. Unlike , this also takes a quoted  as an argument, e.g., type Rep (Foo a b) = $( ''Foo [t| Foo a b |]) Generates the Rep1) type synonym constructor (as opposed to X, which generates the type synonym declaration) applied to its type arguments. Unlike , this also takes a quoted  as an argument, e.g., type Rep1 (Foo a b) = $( ''Foo [t| Foo a b |]) #A backwards-compatible synonym for .1Generates a lambda expression which behaves like from.#A backwards-compatible synonym for .1Generates a lambda expression which behaves like to.1Generates a lambda expression which behaves like from1.1Generates a lambda expression which behaves like to1.W;Deduces the instance type to use for a Generic(1) instance.A X YZ[\]^_`abcdefghijklmnopqrstuvwxyz{WGeneric or Generic1(The type constructor or data family name=The type variables from the data type/data family declarationUIf using a data family instance, provides the types used to instantiate the instance|Generic or Generic1(The type constructor or data family name*The types to instantiate the instance with+True if it's a data family, False otherwise}   A X YZ[\]^_`abcdefghijklmnopqrstuvwxyz{W|}None 357<=>KL Type synonym for $: ~Type synonym for $:  Type synonym for $: !Type synonym for $: "Type synonym for $: #Type synonym for $: $Constants of kind # Used for marking occurrences of ~ Used for marking occurrences of  Used for marking occurrences of  Used for marking occurrences of  Used for marking occurrences of  Used for marking occurrences of  !"#$R !"#$$#"!   !"#$(c) 2012 University of OxfordBSD3generics@haskell.org experimental non-portableNone345KLN(FReturn the name of all the constructors of the type of the given term.)4Return the name of the constructor of the given term%&'()%&'()%&'()%&'()None 357=>KLP*+,-./01234      *+,-./01234 43210/.-,+*P*+,-./01234     None1345KL567 !"#$%&'()*+,-./01567567567 !"#$%&'()*+,-./01None 1345<>KL8923:456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~89:89:8923:456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None1345KL<>The list of values in the subrange defined by a bounding pair.=,The position of a subscript in the subrange.>Returns B the given subscript lies in the range defined the bounding pair.wInterleave elements from two lists. Similar to (++), but swap left and right arguments on every recursive application. From Mark Jones' talk at AFP2008{Diagonalization of nested lists. Ensure that some elements from every sublist will be included. Handles infinite sublists. From Mark Jones' talk at AFP2008;<=>?@ABCDEF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd ;<=>?@ABCDEF ?@ABC;<=>DEF;<=>?@ABCDEF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdNone1345KL$GHefIghijklmnopqrstuvwxyz{|}~GHIGHI"GHefIghijklmnopqrstuvwxyz{|}~ None 1345<KLN~JKLMNJKLMNJKLMNuJKLMN 42011-2012 Universiteit Utrecht, University of OxfordBSD3generics@haskell.org experimental non-portableNone13457KL8OPQRSTUVWXYZ[\]^_`ab      !"OPQRSTUVWXYZ[\]^_`abOPQRSTU\]^_`abVWXYZ[,OPQRSTUVWXYZ[\]^_`ab      !" None1345KL8cdefghijk#$lmnopqrstuvwxyz{|%&'()*+,-./0123456789:;<=>?@cdefghijklmnopqrstuvwxyz{|cdefghijklmnopqrstuvwxyz{|/cdefghijk#$lmnopqrstuvwxyz{|%&'()*+,-./0123456789:;<=>?@ None14KL~Generic AGeneric BGeneric C-}~DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh(ijklmnopqrstuvwxyz{|}~CBA}~}~&}~DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh None1345KL$None !"#$%&'()56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \ ] ^ _ ` 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 { | } ~          !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~012345      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I JKLM N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q rstsusvsvswsxsxsyszszs{s|s|s}s~s~ssssssssssss                              gener_DV0xdwI98PN9hJei9PuYBbGenerics.Deriving.THGenerics.Deriving.BaseGenerics.Deriving.ConNamesGenerics.Deriving.InstancesGenerics.Deriving.CopointGenerics.Deriving.EqGenerics.Deriving.EnumGenerics.Deriving.FunctorGenerics.Deriving.ShowGenerics.Deriving.UniplateGenerics.Deriving.FoldableGenerics.Deriving.MonoidGenerics.Deriving.TraversablePaths_generic_derivingGenerics.Deriving.TH.InternalGenerics.Deriving.TH.Pre711Generics.Deriving deriveMeta deriveDataderiveConstructorsderiveSelectors simplInstance deriveAll deriveAll0deriveAll0WithKindSigs deriveAll1deriveAll1WithKindSigsderiveAll0And1deriveAll0And1WithKindSigsderiveRepresentable0 deriveRepresentable0WithKindSigsderiveRepresentable1 deriveRepresentable1WithKindSigs deriveRep0deriveRep0WithKindSigs deriveRep1deriveRep1WithKindSigsmakeRep0makeRep1makeRep0FromTypemakeRep1FromTypemakeFrom makeFrom0makeTomakeTo0 makeFrom1makeTo1UWordUIntUFloatUDoubleUCharUAddrURecConNames gconNames gconNameOfconNames conNameOf Rep1Proxy Rep1Complex Rep0Complex Rep0Version Rep0UWordRep0UInt Rep0UFloat Rep0UDouble Rep0UChar Rep0UAddr Rep0ExitCodeGCopointgcopointgcopointdefaultGEqgeq geqdefaultGIxrangeindexinRangeGEnumgenum genumDefault toEnumDefaultfromEnumDefault rangeDefault indexDefaultinRangeDefaultGFunctorgmap gmapdefaultGShow gshowsPrecgshowsgshowgshowsPrecdefaultUniplatechildrencontextdescenddescendM transform transformMchildrendefaultcontextdefaultdescenddefaultdescendMdefaulttransformdefaulttransformMdefaultuniplateuniverserewriterewriteMcontextsholespara GFoldablegfoldMapgfoldgfoldrgfoldr'gfoldlgfoldl'gfoldr1gfoldl1gfoldMapdefaultgtoListgconcat gconcatMapgandgorganygallgsumgproductgmaximum gmaximumBygminimum gminimumBygelemgnotElemgfindGMonoidgmemptygmappendgmconcatgmemptydefaultgmappenddefault memptydefaultmappenddefault GTraversable gtraverse gsequenceAgmapM gsequencegtraversedefaultcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName DataVariety GenericKindGen1template-haskellLanguage.Haskell.TH.SyntaxNamebaseGHC.BaseJustNothing GenericClassStarKindStatus expandSyncanRealizeKindStarstarKindStatusToNamecatKindVarNames hasKindStartyVarNamesOfTypekindVarNamesOfKindvisibleTyVarsOfTypeSigT isTyFamilyground applyTyToTys applyTyToTvbs unapplyTy uncurryTy uncurryKindstealKindForType newNameList canEtaReduce varTToNameisTyVar isKindVarisTypeMonomorphicghc-prim GHC.TypesTrueTypeisKindMonomorphicKindunSigT unKindedTV mentionsName allDistinctfoldr1'constructorName dataDecCons sanitizeNameetaReductionErrorderivingKindError gadtError rankNErrorinstantiationError reifyDataInfocheckDataContext DataPlain DataFamilyGen0GenericGeneric1 NotKindStarKindStar IsKindVar KindSubst TypeSubst expandSynKind expandSynAppmkSubst substType substKindsubstNameWithKindsubstNamesWithKindStarsubstTyVarBndrKind substNameWithKindStarInTyVarBndrtyVarNamesOfTyVarBndrtyVarBndrToType tyVarBndrName tyVarBndrKindfst3snd3trd3shrink reifyConTysshowsDataVariety showNameQualoutOfPlaceTyVarError gdPackageKey mkGD7'1_d mkGD7'11_d mkGD7'1_tc mkGD7'11_tc mkGD7'1_v mkGD7'11_v mkBaseName_dmkGHCPrimName_dmkGHCPrimName_tc comp1DataName infixDataName k1DataName l1DataNameleftAssociativeDataName m1DataNamenotAssociativeDataName par1DataNameprefixDataNameproductDataName r1DataName rec1DataNamerightAssociativeDataName u1DataName uAddrDataName uCharDataNameuDoubleDataNameuFloatDataName uIntDataName uWordDataName c1TypeNamecomposeTypeNameconstructorTypeName d1TypeNamegenericTypeNamegeneric1TypeNamedatatypeTypeNamenoSelectorTypeName par1TypeNameproductTypeName rec0TypeName rec1TypeName repTypeName rep1TypeName s1TypeNameselectorTypeName sumTypeName u1TypeName uAddrTypeName uCharTypeNameuDoubleTypeNameuFloatTypeName uIntTypeName uWordTypeName v1TypeNameconFixityValNameconIsRecordValNameconNameValNamedatatypeNameValNameisNewtypeValName fromValName from1ValNamemoduleNameValNameselNameValName toValName to1ValNameuAddrHashValNameuCharHashValNameuDoubleHashValNameuFloatHashValNameuIntHashValNameuWordHashValNameunComp1ValName unK1ValName unPar1ValName unRec1ValName trueDataName falseDataNamenothingDataName justDataName mkGHCPrim_tcaddrHashTypeNamecharHashTypeNamedoubleHashTypeNamefloatHashTypeNameintHashTypeNamewordHashTypeNamecomposeValName errorValName fmapValNameundefinedValName starKindName SelStrictInfo dataInstanceconstrInstanceselectInstance mkDataData mkConstrData mkSelectDatamkDataInstance liftFixityliftAssociativitymkConstrInstancemkConstrInstanceWithmkSelectInstancegenNamemkMetaDataTypemkMetaConsType mkMetaSelTypereifySelStrictInfobuildTypeInstancederiveAllCommonderiveRepresentableCommonderiveRepCommon deriveInstderiveInstCommon makeRepCommonmakeRepTySynApp makeFunCommon genRepNamerepTyperepCon repConWithprodTrepField repFieldArgboxT mkCaseExpmkFrom errorFromerrorTomkTofromConprodE fromField fromFieldWrapwC boxRepNametoCon toConUnwCtoField toFieldWrapunwC unboxRepNamelrPlrEunboxedRepNamesbuildTypeInstanceFromTysgrabTyVarBndrsFromConsGHC.PrimWord#Int#Float#Double#Char#Addr#TFCo:R:URecWordpTFCo:R:URecIntpTFCo:R:URecFloatpTFCo:R:URecDoublepTFCo:R:URecCharpTFCo:R:URecPtrpuWord#uInt#uFloat#uDouble#uChar#uAddr# GHC.GenericsDatatype ConstructorSelectorV1U1Par1Rec1K1M1:+::*::.:RPDCSRec0Par0D1C1S1 NoSelectorRepRep1precunPar1unRec1unK1unM1R1L1unComp1Comp1 isNewtype moduleName datatypeNameselName conIsRecord conFixityconNameArityNoArityInfixPrefixFixityNotAssociativeRightAssociativeLeftAssociative Associativitytofromto1from1 $fConNamesM1 $fConNamesM10 $fConNames:+: C1_0ProxyD1Proxy C1_0Complex D1Complex S1_0_1Version S1_0_0Version C1_0Version D1Version S1_0_0UWord C1_0UWordD1UWord S1_0_0UIntC1_0UIntD1UInt S1_0_0UFloat C1_0UFloatD1UFloat S1_0_0UDouble C1_0UDouble D1UDouble S1_0_0UChar C1_0UCharD1UChar S1_0_0UAddr C1_0UAddrD1UAddr C1_1ExitCode C1_0ExitCode D1ExitCode$fConstructorC1_0Proxy$fDatatypeD1Proxy$fGeneric1Proxy$fConstructorC1_0Complex$fDatatypeD1Complex$fGeneric1Complex$fGenericComplex$fSelectorS1_0_1Version$fSelectorS1_0_0Version$fConstructorC1_0Version$fDatatypeD1Version$fGenericVersion$fSelectorS1_0_0UWord$fConstructorC1_0UWord$fDatatypeD1UWord $fGenericURec$fSelectorS1_0_0UInt$fConstructorC1_0UInt$fDatatypeD1UInt$fGenericURec0$fSelectorS1_0_0UFloat$fConstructorC1_0UFloat$fDatatypeD1UFloat$fGenericURec1$fSelectorS1_0_0UDouble$fConstructorC1_0UDouble$fDatatypeD1UDouble$fGenericURec2$fSelectorS1_0_0UChar$fConstructorC1_0UChar$fDatatypeD1UChar$fGenericURec3$fSelectorS1_0_0UAddr$fConstructorC1_0UAddr$fDatatypeD1UAddr$fGenericURec4$fConstructorC1_1ExitCode$fConstructorC1_0ExitCode$fDatatypeD1ExitCode$fGenericExitCode GCopoint' gcopoint'$fGCopointWrappedMonad $fGCopointSum$fGCopointIdentity$fGCopointDual $fGCopointAlt$fGCopoint(,,,,,,)$fGCopoint(,,,,,)$fGCopoint(,,,,)$fGCopoint(,,,)$fGCopoint(,,) $fGCopoint(,)$fGCopoint':.:$fGCopoint'Rec1$fGCopoint':*:$fGCopoint':+: $fGCopoint'M1 $fGCopoint'K1$fGCopoint'Par1 $fGCopoint'U1GEq'geq' $fGEqZipList $fGEqWordPtr $fGEqWord64 $fGEqWord32 $fGEqWord16 $fGEqWord8 $fGEqWord $fGEqVoid $fGEqVersion $fGEqURec $fGEqURec0 $fGEqURec1 $fGEqURec2 $fGEqURec3 $fGEqURec4$fGEqU1$fGEqSum$fGEqStablePtr $fGEqSeekMode $fGEqRec1$fGEqPtr $fGEqProxy $fGEqProduct $fGEqPar1 $fGEqOrdering $fGEqNatural $fGEqMaybe$fGEqM1 $fGEqLast$fGEqK1 $fGEqIOMode$fGEqIOErrorType$fGEqIOException $fGEqIntPtr $fGEqInteger $fGEqInt64 $fGEqInt32 $fGEqInt16 $fGEqInt8$fGEqInt $fGEqIdentity$fGEqHandlePosn $fGEqHandle$fGEqGeneralCategory $fGEqFunPtr$fGEqForeignPtr $fGEqFloat $fGEqFixity $fGEqFirst$fGEqFd $fGEqExitCode $fGEqErrno $fGEqEither $fGEqDual $fGEqDouble $fGEqCWchar $fGEqCUShort$fGEqCUSeconds $fGEqCULong $fGEqCULLong $fGEqCUIntPtr $fGEqCUIntMax $fGEqCUInt $fGEqCUid $fGEqCUChar $fGEqCTime $fGEqCTcflag $fGEqCSsize $fGEqCSize$fGEqCSigAtomic $fGEqCShort$fGEqCSUSeconds $fGEqCSpeed $fGEqCSChar $fGEqCRLim $fGEqCPtrdiff $fGEqCPid $fGEqConst $fGEqComplex $fGEqCOff $fGEqCNlink $fGEqCMode $fGEqCLong $fGEqCLLong $fGEqCIntPtr $fGEqCIntMax $fGEqCInt $fGEqCIno $fGEqChar $fGEqCGid $fGEqCFloat $fGEqCDouble $fGEqCDev $fGEqCClock $fGEqCChar$fGEqCCc$fGEqBufferMode $fGEqBool$fGEqAssociativity $fGEqArity$fGEqAny$fGEqAlt$fGEqAll$fGEq:.:$fGEq:*:$fGEq:+:$fGEq[] $fGEq(,,,,,,) $fGEq(,,,,,) $fGEq(,,,,) $fGEq(,,,) $fGEq(,,)$fGEq(,)$fGEq() $fGEq'URec $fGEq'URec0 $fGEq'URec1 $fGEq'URec2 $fGEq'URec3 $fGEq'URec4 $fGEq':*: $fGEq':+:$fGEq'M1$fGEq'K1$fGEq'U1|||diagEnum'enum'skewcombine findIndexgenumNumUnboundedgenumNumBoundedgenumNumWithBounds rangeEnum indexIntegral inRangeOrd $fGIxWordPtr $fGIxWord64 $fGIxWord32 $fGIxWord16 $fGIxWord8 $fGIxWord$fGIxSum $fGIxProxy $fGIxProduct $fGIxOrdering $fGIxNatural $fGIxMaybe $fGIxLast $fGIxIntPtr $fGIxInteger $fGIxInt64 $fGIxInt32 $fGIxInt16 $fGIxInt8$fGIxInt $fGIxIdentity $fGIxFixity $fGIxFirst$fGIxFd $fGIxExitCode $fGIxEither $fGIxDual $fGIxCWchar $fGIxCUShort $fGIxCULong $fGIxCULLong $fGIxCUIntPtr $fGIxCUIntMax $fGIxCUInt $fGIxCUid $fGIxCUChar $fGIxCTcflag $fGIxCSsize $fGIxCSize$fGIxCSigAtomic $fGIxCShort $fGIxCSChar $fGIxCRLim $fGIxCPtrdiff $fGIxCPid $fGIxCOff $fGIxCNlink $fGIxCMode $fGIxCLong $fGIxCLLong $fGIxCIntPtr $fGIxCIntMax $fGIxCInt $fGIxCIno $fGIxCGid $fGIxCChar $fGIxBool$fGIxAssociativity $fGIxArity$fGIxAny$fGIxAlt$fGIxAll$fGIx[] $fGIx(,,,,,,) $fGIx(,,,,,) $fGIx(,,,,) $fGIx(,,,) $fGIx(,,)$fGIx(,)$fGIx()$fGEnumZipList$fGEnumWordPtr $fGEnumWord64 $fGEnumWord32 $fGEnumWord16 $fGEnumWord8 $fGEnumWord $fGEnumU1 $fGEnumSum $fGEnumRec1 $fGEnumProxy$fGEnumProduct $fGEnumPar1$fGEnumOrdering$fGEnumNatural $fGEnumMaybe $fGEnumM1 $fGEnumLast $fGEnumK1 $fGEnumIntPtr$fGEnumInteger $fGEnumInt64 $fGEnumInt32 $fGEnumInt16 $fGEnumInt8 $fGEnumInt$fGEnumIdentity $fGEnumFloat $fGEnumFixity $fGEnumFirst $fGEnumFd$fGEnumExitCode $fGEnumEither $fGEnumDual $fGEnumDouble $fGEnumCWchar$fGEnumCUShort$fGEnumCUSeconds $fGEnumCULong$fGEnumCULLong$fGEnumCUIntPtr$fGEnumCUIntMax $fGEnumCUInt $fGEnumCUid $fGEnumCUChar $fGEnumCTime$fGEnumCTcflag $fGEnumCSsize $fGEnumCSize$fGEnumCSigAtomic $fGEnumCShort$fGEnumCSUSeconds $fGEnumCSpeed $fGEnumCSChar $fGEnumCRLim$fGEnumCPtrdiff $fGEnumCPid $fGEnumConst$fGEnumComplex $fGEnumCOff $fGEnumCNlink $fGEnumCMode $fGEnumCLong $fGEnumCLLong$fGEnumCIntPtr$fGEnumCIntMax $fGEnumCInt $fGEnumCIno $fGEnumCGid $fGEnumCFloat$fGEnumCDouble $fGEnumCDev $fGEnumCClock $fGEnumCChar $fGEnumCCc $fGEnumBool$fGEnumAssociativity $fGEnumArity $fGEnumAny $fGEnumAlt $fGEnumAll $fGEnum:.: $fGEnum:*: $fGEnum:+: $fGEnum[]$fGEnum(,,,,,,)$fGEnum(,,,,,) $fGEnum(,,,,) $fGEnum(,,,) $fGEnum(,,) $fGEnum(,) $fGEnum() $fEnum':*: $fEnum':+: $fEnum'M1 $fEnum'K1 $fEnum'U1 GFunctor'gmap'$fGFunctorZipList $fGFunctorSum$fGFunctorProxy$fGFunctorProduct$fGFunctorMaybe$fGFunctorLast $fGFunctorIO$fGFunctorIdentity$fGFunctorFirst$fGFunctorEither$fGFunctorDual$fGFunctorConst$fGFunctorComplex $fGFunctorAlt $fGFunctor[] $fGFunctor(,)$fGFunctor(->)$fGFunctor'URec$fGFunctor'URec0$fGFunctor'URec1$fGFunctor'URec2$fGFunctor'URec3$fGFunctor'URec4$fGFunctor':.:$fGFunctor':*:$fGFunctor':+: $fGFunctor'M1$fGFunctor'Rec1 $fGFunctor'K1$fGFunctor'Par1 $fGFunctor'U1GShow' gshowsPrec' isNullaryRecTupPrefInf intersperseappPrec$fGShowZipList$fGShowWordPtr $fGShowWord64 $fGShowWord32 $fGShowWord16 $fGShowWord8 $fGShowWord $fGShowVoid$fGShowVersion $fGShowURec $fGShowURec0 $fGShowURec1 $fGShowURec2 $fGShowURec3 $fGShowU1 $fGShowSum $fGShow[]$fGShowSeekMode $fGShowRec1 $fGShowPtr $fGShowProxy$fGShowProduct $fGShowPar1$fGShowOrdering$fGShowNatural $fGShowMaybe $fGShowM1 $fGShowLast $fGShowK1 $fGShowIOMode$fGShowIOErrorType$fGShowIOException $fGShowIntPtr$fGShowInteger $fGShowInt64 $fGShowInt32 $fGShowInt16 $fGShowInt8 $fGShowInt$fGShowIdentity$fGShowHandlePosn $fGShowHandle$fGShowGeneralCategory $fGShowFunPtr$fGShowForeignPtr $fGShowFloat $fGShowFixity $fGShowFirst $fGShowFd$fGShowExitCode $fGShowEither $fGShowDual $fGShowDouble $fGShowCWchar$fGShowCUShort$fGShowCUSeconds $fGShowCULong$fGShowCULLong$fGShowCUIntPtr$fGShowCUIntMax $fGShowCUInt $fGShowCUChar $fGShowCTime $fGShowCSize$fGShowCSigAtomic $fGShowCShort$fGShowCSUSeconds $fGShowCSChar$fGShowCPtrdiff $fGShowConst$fGShowComplex $fGShowCLong $fGShowCLLong$fGShowCIntPtr$fGShowCIntMax $fGShowCInt $fGShowChar $fGShowCFloat$fGShowCDouble $fGShowCClock $fGShowCChar$fGShowBufferMode $fGShowBool$fGShowAssociativity $fGShowArity $fGShowAny $fGShowAlt $fGShowAll $fGShow:.: $fGShow:*: $fGShow:+: $fGShow[]0$fGShow(,,,,,,)$fGShow(,,,,,) $fGShow(,,,,) $fGShow(,,,) $fGShow(,,) $fGShow(,) $fGShow() $fGShow'URec $fGShow'URec0 $fGShow'URec1 $fGShow'URec2 $fGShow'URec3 $fGShow':*: $fGShow':+: $fGShow'M1 $fGShow'M10 $fGShow'M11 $fGShow'K1 $fGShow'U1Context'context' Uniplate' children'descend' descendM' transform' transformM' $fUniplate[]$fUniplateEither$fUniplateMaybe$fUniplate(,,,,,,)$fUniplate(,,,,,)$fUniplate(,,,,)$fUniplate(,,,)$fUniplate(,,) $fUniplate(,) $fUniplate() $fUniplateInt$fUniplateFloat$fUniplateDouble$fUniplateChar$fUniplateBool$fContext':*:b$fContext':*:a$fContext':+:b $fContext'M1b $fContext'K1b $fContext'K1a $fContext'U1b$fUniplate':*:b$fUniplate':+:b$fUniplate'M1b$fUniplate'K1b$fUniplate'K1a$fUniplate'U1a GFoldable' gfoldMap'$fGFoldableZipList$fGFoldableSum$fGFoldableProxy$fGFoldableProduct$fGFoldableMaybe$fGFoldableLast$fGFoldableIdentity$fGFoldableFirst$fGFoldableEither$fGFoldableDual$fGFoldableConst$fGFoldableComplex $fGFoldable[]$fGFoldable(,)$fGFoldable'URec$fGFoldable'URec0$fGFoldable'URec1$fGFoldable'URec2$fGFoldable'URec3$fGFoldable'URec4$fGFoldable':.:$fGFoldable':*:$fGFoldable':+:$fGFoldable'M1$fGFoldable'Rec1$fGFoldable'K1$fGFoldable'Par1$fGFoldable'U1memptymappendmconcatMonoid'mempty'mappend'GMonoid'gmempty' gmappend'$fGMonoid(,,,,,,,)$fGMonoid(,,,,,,)$fGMonoid(,,,,,)$fGMonoid(,,,,)$fGMonoid(,,,) $fGMonoid(,,) $fGMonoid(,)$fGMonoidIdentity$fGMonoidProxy$fGMonoidConst $fGMonoid(->)$fGMonoidMaybe $fGMonoidDual $fGMonoidEndo $fGMonoid[]$fGMonoidProduct $fGMonoidSum $fGMonoidLast$fGMonoidFirst $fGMonoidAll $fGMonoidAny $fGMonoid()$fGMonoidOrdering $fMonoid':*: $fMonoid'M1 $fMonoid'K1 $fMonoid'U1 $fGMonoid':*: $fGMonoid'M1 $fGMonoid'K1 $fGMonoid'U1 Data.Monoid<>getDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLastgetAltAltMonoid GTraversable' gtraverse'$fGTraversableZipList$fGTraversableSum$fGTraversableProxy$fGTraversableProduct$fGTraversableMaybe$fGTraversableLast$fGTraversableIdentity$fGTraversableFirst$fGTraversableEither$fGTraversableDual$fGTraversableConst$fGTraversableComplex$fGTraversable[]$fGTraversable(,)$fGTraversable'URec$fGTraversable'URec0$fGTraversable'URec1$fGTraversable'URec2$fGTraversable'URec3$fGTraversable'URec4$fGTraversable':.:$fGTraversable':*:$fGTraversable':+:$fGTraversable'M1$fGTraversable'Rec1$fGTraversable'K1$fGTraversable'Par1$fGTraversable'U1