3*6      !"#$%&'()*+,-./012345 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-Inferred6789:;<=>?@ABCDEFGHIJKL6789:;<=>?@ABCDEFGHIJKL non-portable experimentalgenerics@haskell.orgNone MConstructor args N Variables OType 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. PBVariant of foldr1 which returns a special element for empty lists Q/Variant of foldr1 for producing balanced lists 3RSMNO!"#$%&'TU(V)WX*YZ[\]^_`abcdefghijklmnopqrPQstu !"#$%&'()* #$%&'!"*()/RSMNO!"#$%&'TU(V)WX*YZ[\]^_`abcdefghijklmnopqrPQstu 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 -. +,-./vwxyz{|}~+,-./-./+,+,-./vwxyz{|}~ non-portable  experimental generics@haskell.org None012012012012 non-portable  experimental generics@haskell.org None345345345345 non-portable  experimental generics@haskell.org None +,-./012345 non-portable  experimental generics@haskell.org  Safe-Inferred!        !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~instant-generics-0.3.7Generics.Instant.BaseGenerics.Instant.TH Generics.Instant.Functions.EmptyGenerics.Instant.Functions.ShowGenerics.Instant.Functions.EqGenerics.Instant.InstancesGenerics.Instant.FunctionsGenerics.InstantSuZeX RepresentableReptofrom AssociativityNotAssociativeRightAssociativeLeftAssociativeFixityInfixPrefix ConstructorconName conFixity conIsRecordCCEqRecVar:*::+:RLUZ simplInstance gadtInstance deriveAll deriveAllLderiveConstructorsderiveRepresentable deriveRep typeVariablestyVarBndrToName genRepNameHasRechasRec'Emptyempty'emptyGShowgshow gshowDefaultGEqgeq geqDefault Tuple_Pair_ Maybe_Just_Maybe_Nothing_ List_Cons_ List_Nil_$fConstructorTuple_Pair_$fRepresentable(,)$fConstructorMaybe_Just_$fConstructorMaybe_Nothing_$fRepresentableMaybe$fConstructorList_Cons_$fConstructorList_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:+:$fEmptyUGShow'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