úÎ*‰%S5      !"#$%&'()*+,-./01234 non-portable  experimental generics@haskell.org !8Datatype 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 56789 non-portable experimentalgenerics@haskell.org.:;<Constructor args = Variables >Type 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. $-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. ?@'A(BC)DEFGHIJKLMNOPQRSTUVWXYZ[\]BVariant of foldr1 which returns a special element for empty lists /Variant of foldr1 for producing balanced lists ^ !"#$%&'() #$%&!")'( !"#$%&'() non-portable  experimental generics@haskell.org *We use *8 to check for recursion in the structure. This is used ; to avoid selecting a recursive branch in the sum case for ,. +,-.*+,-.,-.*+*++,--. non-portable  experimental generics@haskell.org /0_`1abc/01/01/001 non-portable  experimental generics@haskell.org 23de42342342334 non-portable experimentalgenerics@haskell.org *+,-./01234 non-portable  experimental generics@haskell.org !  f      !"##$%&'()*+,-./0123456789:;<=>>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiinstant-generics-0.3Generics.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 deriveAllderiveConstructorsderiveRepresentable deriveRep typeVariablestyVarBndrToName genRepNameHasRechasRec'Emptyempty'emptyGShowgshow gshowDefaultGEqgeq geqDefault Tuple_Pair_ Maybe_Just_Maybe_Nothing_ List_Cons_ List_Nil_ TypeArgsEqsargsvarsteqs deriveInstconstrInstancetyVarBndrsToNamesstripRecordNamesgenName mkConstrDatamkConstrInstancemkConstrInstanceWithrepTypeextractIndices repConGADT getConName int2TLNatgenExTyFamInstsgenExTyFamInsts' mobilityRules flattenEqsbaseEqsrepConrepField repField'mkFrommkTofromCon fromFieldtoContoFieldfieldlrPlrEfoldBalfoldBal'GShow'gshow'spaceparenwrapGEq'geq'