úÎ+Z&6      !"#$%&'()*+,-./012345 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 6789: 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. $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. @A(B)CD*EFGHIJKLMNOPQRSTUVWXYZ[\]^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 01`a2bcd0120120112 non-portable  experimental generics@haskell.org 34ef53453453445 non-portable experimentalgenerics@haskell.org +,-./012345 non-portable  experimental generics@haskell.org !  g      !"##$%&'()*+,-./0123456789:;<=>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijinstant-generics-0.3.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 deriveAll deriveAllLderiveConstructorsderiveRepresentable 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'