6,k:      !"#$%&'()*+,-./0123456789  non-portable  experimental generics@haskell.org  Safe-Inferred8Datatype to represent the associativy of a constructor. 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. "  !"  !"!       ! non-portable  experimental generics@haskell.org  Safe-Inferred:;<=>?@ABCDEFGHIJKLMNOP:;<=>?@ABCDEFGHIJKLMNOP non-portable experimentalgenerics@haskell.orgNone QConstructor args R Variables SType equalities "IGiven the names of a generic class, a type to instantiate, a function in J the class and the default implementation, generates the code for a basic  generic instance. #KGiven the names of a generic class, a GADT type to instantiate, a function M in the class and the default implementation, generates the code for a basic L generic instance. This is tricky in general because we have to analyze the O return types of each of the GADT constructors and give instances accordingly. $@Given the type and the name (as string) for the type to derive,  generate the  instances and the  instance. %Same as $, but taking a list as input. &-Given a datatype name, derive datatypes and  instances of class . 'CGiven the type and the name (as string) for the Representable type ! synonym to derive, generate the  instance. (Derive only the  type synonym. Not needed if '  is used. TBVariant of foldr1 which returns a special element for empty lists U/Variant of foldr1 for producing balanced lists 3VWQRS"#$%&'(XY)Z*[\+]^_`abcdefghijklmnopqrstuvTUwxy "#$%&'()*+ $%&'("#+)*/VWQRS"#$%&'(XY)Z*[\+]^_`abcdefghijklmnopqrstuvTUwxy non-portable  experimental generics@haskell.org None,We use ,8 to check for recursion in the structure. This is used ; to avoid selecting a recursive branch in the sum case for .. ,-./0z{|}~,-./0./0,-,-./0z{|}~ non-portable  experimental generics@haskell.org None123123123123 non-portable  experimental generics@haskell.org None456456456456 non-portable  experimental generics@haskell.org None789789789789 non-portable  experimental generics@haskell.org None,-./0123456789  non-portable  experimental generics@haskell.org  Safe-Inferred"  !      !!"#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_`abcdefghijklmnopqrstuvwxyz{|}~instant-generics-0.4Generics.Instant.BaseGenerics.Instant.TH Generics.Instant.Functions.EmptyGenerics.Instant.Functions.EnumGenerics.Instant.Functions.ShowGenerics.Instant.Functions.EqGenerics.Instant.InstancesGenerics.Instant.FunctionsGenerics.InstantNatSuZeX RepresentableReptofrom AssociativityNotAssociativeRightAssociativeLeftAssociativeFixityInfixPrefix ConstructorconName conFixity conIsRecordCCEqRecVar:*::+:RLUZ simplInstance gadtInstance deriveAll deriveAllLderiveConstructorsderiveRepresentable deriveRep typeVariablestyVarBndrToName genRepNameHasRechasRec'Emptyempty'emptyGEnumgenum'genumGShowgshow gshowDefaultGEqgeq geqDefault Tuple_Pair_ Maybe_Just_Maybe_Nothing_ List_Cons_ List_Nil_$fConstructor*Tuple_Pair_$fRepresentable(,)$fConstructor*Maybe_Just_$fConstructor*Maybe_Nothing_$fRepresentableMaybe$fConstructor*List_Cons_$fConstructor*List_Nil_$fRepresentable[]$fRepresentableRec$fRepresentableVar$fRepresentableCEq$fRepresentable:+:$fRepresentable:*:$fRepresentableU$fRepresentableFloat$fRepresentableBool$fRepresentableChar$fRepresentableIntargsvarsteqsfoldr1'foldBal TypeArgsEqs deriveInstconstrInstancetyVarBndrsToNamesstripRecordNamesgenName mkConstrDatamkConstrInstancemkConstrInstanceWithrepTypeextractIndices repConGADT getConName int2TLNatgenExTyFamInstsgenExTyFamInsts' mobilityRules flattenEqsbaseEqsrepConrepField repField'mkFrommkTofromCon fromFieldtoContoFieldfieldlrPlrEtrdfoldBal'$fLiftAssociativity $fLiftFixity $fHasRecChar$fHasRecDouble $fHasRecFloat$fHasRecInteger $fHasRecInt $fHasRecRec $fHasRecCEq $fHasRec:+: $fHasRec:*: $fHasRecVar $fHasRecU $fEmpty(,) $fEmpty[] $fEmptyMaybe $fEmptyBool $fEmptyChar $fEmptyDouble $fEmptyFloat$fEmptyInteger $fEmptyInt $fEmptyRec $fEmptyVar $fEmptyCEq $fEmpty:*: $fEmpty:+:$fEmptyU|||diagskewcombine $fGEnumInt $fGEnum:*: $fGEnum:+: $fGEnumCEq $fGEnumCEq0 $fGEnumVar $fGEnumRec$fGEnumUGShow'gshow'spaceparenwrap $fGShowMaybe $fGShow(,) $fGShow[] $fGShow[]0 $fGShowBool $fGShowChar $fGShowDouble $fGShowFloat$fGShowInteger $fGShowInt $fGShow'Rec $fGShow'Var $fGShow'CEq $fGShow':*: $fGShow':+: $fGShow'UGEq'geq'$fGEq(,)$fGEq[] $fGEqMaybe $fGEqBool $fGEqChar $fGEqDouble $fGEqFloat $fGEqInteger$fGEqInt $fGEq'Rec $fGEq'Var $fGEq'CEq $fGEq':*: $fGEq':+:$fGEq'U