ާz      !"#$%&'()*+, - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 [ \ ] ^ _ ` 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 Safe z{|}~{ z{|}~#(c) 2008--2009 Universiteit UtrechtBSD3generics@haskell.org experimental non-portableNoneA wrapper around Name which only uses the nameBase (not the entire Name) to compare for equality. For example, if you had two Names a_123 and a_456, they are not equal as Names, but they are equal as NameBases.5This is useful when inspecting type variables, since a type variable in an instance context may have a distinct Name from a type variable within an actual constructor declaration, but we'd want to treat them as the same if they have the same nameBase (since that's what the programmer uses to begin with).BExpands all type synonyms in a type. Written by Dan Rosn in the  genifunctors package (licensed under BSD3).PIs the given type a type family constructor (and not a data family constructor)?)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: (Int -> String) -> Char -> () would split to this: [Int -> String, Char, ()] )Like uncurryType, except on a kind level.NReplace the Name of a TyVarBndr with one from a Type (if the Type has a Name).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 types&Extract the Name from a type variable.*Extract the NameBase from a type variable.Is the given type a variable?6Peel off a kind signature from a Type (if it has one).;Peel off a kind signature from a TyVarBndr (if it has one).=Does the given type mention any of the NameBases 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.ywwNone 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 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV        (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 WXY   WXYNone 357=>KL0Z[\ ]^_ `abcdefghijklmnopqrstuvwxyz{|}~  0Z[\ ]^_ `abcdefghijklmnopqrstuvwxyz{|}~None1345KLNone 1345<>KLz     x     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 !"# !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#  !"# !"# !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None14KL$%&$%&$%&$%&None1345<KLw'()*+      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE'()*+'()*+n'()*+      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE 42011-2012 Universiteit Utrecht, University of OxfordBSD3generics@haskell.org experimental non-portableNone13457KL8,-./012FGHIJKLM3456789:;<=>?NOPQRSTUVWXYZ[\]^_`abcdefghi,-./0123456789:;<=>?,-./0129:;<=>?345678,,-./012FGHIJKLM3456789:;<=>?NOPQRSTUVWXYZ[\]^_`abcdefghi None14KL*@ABCDEFGHjkIJKLMNOPQRSTUVWXYlmnopqrstuvwxy@ABCDEFGHIJKLMNOPQRSTUVWXY@ABCDEFGHIJKLMNOPQRSTUVWXY!@ABCDEFGHjkIJKLMNOPQRSTUVWXYlmnopqrstuvwxy None14KL[Generic z\Generic {]Generic |-Z[\]}~^_`a(|{zZ[\]^_`aZ[\]^_`a&Z[\]}~^_`a None14KLbcdefgbcdefgbcdefgbcdefg #(c) 2008--2009 Universiteit UtrechtBSD3generics@haskell.org experimental non-portableNoneIndicates 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.xIndicates whether Generic (Gen0) or Generic1 (Gen1) is being derived. Gen1 bundles the Name of the last type parameter.hGiven 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.iNGiven the type and the name (as string) for the type to derive, generate the Data instance, the  instances, the  instances, and the Representable0 instance.jNGiven the type and the name (as string) for the type to derive, generate the Data instance, the  instances, the  instances, and the Representable1 instance.kNGiven the type and the name (as string) for the type to derive, generate the Data instance, the  instances, the  instances, the Representable0 instance, and the Representable1 instance.lNGiven the type and the name (as string) for the type to derive, generate the Data instance, the  instances, and the  instances.m?Given a datatype name, derive a datatype and instance of class .n@Given a datatype name, derive datatypes and instances of class .o?Given a datatype name, derive datatypes and instances of class .peGiven the type and the name (as string) for the Representable0 type synonym to derive, generate the Representable0 instance.qeGiven the type and the name (as string) for the Representable1 type synonym to derive, generate the Representable1 instance.rDerive only the Rep0 type synonym. Not needed if p is used.sDerive only the 2 type synonym. Not needed if q is used.tGenerates the Rep0) type synonym constructor (as opposed to r1, which generates the type synonym declaration).uGenerates the 2) type synonym constructor (as opposed to s1, which generates the type synonym declaration).v1Generates a lambda expression which behaves like T.w1Generates a lambda expression which behaves like S.x1Generates a lambda expression which behaves like V.y1Generates a lambda expression which behaves like U.*Credit to Vctor Lpez Juan for this trick"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.wDeduces the non-eta-reduced type variables, the instance type, the GenericKind value to use for a Generic(1) instance..True if the type does not mention the NameBase}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 *.?Deriving Generic(1) doesn't work with ExistentialQuantification>Cannot have a constructor argument of form (forall a1 ... an.  type) when deriving Generic(1)One cannot derive Generic(1) instance for anything that uses DatatypeContexts, so check to make sure the Cxt field of a datatype is null.-Construct a GenericKind value from its arity.Shijklmnopqrstuvwxy     Generic(0) or Generic1(The type constructor or data family name=The type variables from the data type/data family declaration9The constructors of the data type/data family declarationUIf using a data family instance, provides the types used to instantiate the instancehijklmnopqrstuvwxylmnoijkpqrshtvwuxyOhijklmnopqrstuvwxy     None !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV    !"#$%&'()*+,-./0123456789:;<=>? !"#$%&'()*+,-./0123456789:;< = > ? @ 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 [ \ ] ^ _ ` 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 { | } ~        !"#$%&$%'$%($%)$%*$%+$%,$%-$%.$%/$%0$%1$%2$%3$%4$%5$%6$%7$%8$%9$%:$%;$%<$%=$%>$%?$%@$%A$%,$%B$%-$%C$%.$%D$%/$%E$%0$%F$%G$%2$%H$%I$%J$%K$%L$%M$%N$%O$%P$%Q$%R$%Q$%S$%T$%U$%V$%W$%X$%Y$%Z$%[$%\$%]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM 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 { | } ~   $$$                                     $$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                                                                 gener_7niBGAsKgShEPNZJpyoJtOGenerics.Deriving.BaseGenerics.Deriving.ConNamesGenerics.Deriving.InstancesGenerics.Deriving.CopointGenerics.Deriving.EqGenerics.Deriving.EnumGenerics.Deriving.FunctorGenerics.Deriving.ShowGenerics.Deriving.UniplateGenerics.Deriving.FoldableGenerics.Deriving.MonoidGenerics.Deriving.TraversableGenerics.Deriving.THPaths_generic_derivingGenerics.Deriving.TH.InternalGenerics.DerivingUWordUIntUFloatUDoubleUCharUAddrURecConNames gconNames gconNameOfconNames conNameOf Rep0UWordRep0UInt Rep0UFloat Rep0UDouble Rep0UChar Rep0UAddrGCopointgcopointgcopointdefaultGEqgeq geqdefaultGIxrangeindexinRangeGEnumgenum genumDefault toEnumDefaultfromEnumDefault rangeDefault indexDefaultinRangeDefaultGFunctorgmap gmapdefaultGShow gshowsPrecgshowsgshowgshowsPrecdefaultUniplatechildrencontextdescenddescendM transform transformMchildrendefaultcontextdefaultdescenddefaultdescendMdefaulttransformdefaulttransformMdefaultuniplateuniverserewriterewriteMcontextsholespara GFoldablegfoldMapgfoldgfoldrgfoldr'gfoldlgfoldl'gfoldr1gfoldl1gfoldMapdefaultgtoListgconcat gconcatMapgandgorganygallgsumgproductgmaximum gmaximumBygminimum gminimumBygelemgnotElemgfindGMonoidgmemptygmappendgmconcatgmemptydefaultgmappenddefault memptydefaultmappenddefault GTraversable gtraverse gsequenceAgmapM gsequencegtraversedefault simplInstance deriveAll deriveAll1deriveAll0And1 deriveMeta deriveDataderiveConstructorsderiveSelectorsderiveRepresentable0deriveRepresentable1 deriveRep0 deriveRep1makeRep0makeRep1makeFrommakeTo makeFrom1makeTo1catchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameNameBase expandSyn isTyFamily applyTyToTys applyTyToTvbs unapplyTy uncurryTy uncurryKindreplaceTyVarName canEtaReduce varTToNamevarTToNameBaseisTyVarunSigT unKindedTVmentionsNameBase allDistinctfoldr1'constructorName dataDecConsgetNameSubst expandSynAppmkSubstsubst getNameBasecanRealizeKindStar wellKindedtyVarBndrToNametyVarBndrToNameBasetyVarBndrToKindstripRecordNamestrd gdPackageKey mkGD7'1_d mkGD7'11_d mkGD7'1_tc mkGD7'11_tc mkGD7'1_v mkGD7'11_v 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 mkGHCPrim_tcaddrHashTypeNamecharHashTypeNamedoubleHashTypeNamefloatHashTypeNameintHashTypeNamewordHashTypeNamecomposeValName errorValName fmapValNameundefinedValName $fOrdNameBase $fEqNameBaseghc-primGHC.PrimWord#Int#Float#Double#Char#Addr#TFCo:R:URecWordpTFCo:R:URecIntpTFCo:R:URecFloatpTFCo:R:URecDoublepTFCo:R:URecCharpTFCo:R:URecPtrpuWord#uInt#uFloat#uDouble#uChar#uAddr#base GHC.GenericsGenericGeneric1Datatype ConstructorSelectorV1U1Par1Rec1K1M1:+::*::.:RPDCSRec0Par0D1C1S1 NoSelectorRepRep1precunPar1unRec1unK1unM1R1L1unComp1Comp1 isNewtype moduleName datatypeNameselName conIsRecord conFixityconNameArityNoArityInfixPrefixFixityNotAssociativeRightAssociativeLeftAssociative Associativitytofromto1from1 $fConNamesM1 $fConNamesM10 $fConNames:+: 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$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 GCopoint' gcopoint'$fGCopointWrappedMonad $fGCopointSum$fGCopointIdentity$fGCopointDual$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$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 $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 GHC.TypesTrue|||diagEnum'enum'skewcombine findIndexgenumNum 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 $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 $fGEnumMaybe $fGEnumM1 $fGEnumLast $fGEnumK1 $fGEnumIntPtr$fGEnumInteger $fGEnumInt64 $fGEnumInt32 $fGEnumInt16 $fGEnumInt8 $fGEnumInt$fGEnumIdentity $fGEnumFloat $fGEnumFixity $fGEnumFirst $fGEnumFd $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 $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$fGFunctorMaybe$fGFunctorLast $fGFunctorIO$fGFunctorIdentity$fGFunctorFirst$fGFunctorEither$fGFunctorConst $fGFunctorAlt $fGFunctor[] $fGFunctor(,)$fGFunctor(->)$fGFunctor':.:$fGFunctor':*:$fGFunctor':+: $fGFunctor'M1$fGFunctor'Rec1 $fGFunctor'K1$fGFunctor'Par1 $fGFunctor'U1GShow' gshowsPrec' isNullaryTypeRecTupPrefInf intersperseappPrec$fGShowZipList$fGShowWordPtr $fGShowWord64 $fGShowWord32 $fGShowWord16 $fGShowWord8 $fGShowWord $fGShowVoid $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 $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'$fGFoldableMaybe$fGFoldableIdentity$fGFoldableEither$fGFoldableConst$fGFoldable(,) $fGFoldable[]$fGFoldable':.:$fGFoldable':*:$fGFoldable':+:$fGFoldable'M1$fGFoldable'Rec1$fGFoldable'K1$fGFoldable'Par1$fGFoldable'U1GHC.BasememptymappendmconcatMonoid'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'$fGTraversableMaybe$fGTraversableIdentity$fGTraversableEither$fGTraversableConst$fGTraversable(,)$fGTraversable[]$fGTraversable':.:$fGTraversable':*:$fGTraversable':+:$fGTraversable'M1$fGTraversable'Rec1$fGTraversable'K1$fGTraversable'Par1$fGTraversable'U1 DataVariety GenericKind sanitizeName reifyDataInfobuildTypeInstancegroundetaReductionErrorderivingKindError forallCError rankNErrorcheckDataContextgenericKindFromArity DataPlain DataFamilyGen0Gen1deriveRepCommon deriveInst deriveInst1deriveInstCommon makeRepCommon makeFunCommon dataInstanceconstrInstanceselectInstancegenName genRepNameshowsDataVariety showNameQual mkDataData mkConstrData mkSelectDatamkDataInstance liftFixityliftAssociativitymkConstrInstancemkConstrInstanceWithmkSelectInstancerepTyperepConrepField repField' repFieldArgboxT mkCaseExpmkFrom errorFromerrorTomkTofromCon fromField fromFieldWrapwC boxRepNametoCon toConUnwCtoField toFieldWrapfieldunwC unboxRepNamelrPlrEunboxedRepNamesoutOfPlaceTyVarError