!Щ0      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / Safe.HUVNone 1=>?@AMUVXkCh generic-dataGeneric representation of 0 types. generic-data Extends the  option for j to allow all constructors to have arbitrary many fields. Each field type must be an instance of both 1 and 0.. Two restrictions require the user's caution:The 1O instances of the field types need to start enumerating from 0. Particularly 2[ is an unfit field type, because the enumeration of the negative values starts before 0. There can only be up to 3Q values (because the implementation represents the cardinality explicitly as an 2). This restriction makes 4 an invalid field type. Notably, it is insufficient for each individual field types to stay below this limit. Instead it applies to the generic type as a whole.The resulting " instance starts enumerating from 0 up to (cardinality - 1) and respects the generic 5 instance (defined by a). The values from different constructors are enumerated sequentially; they are not interleaved. 2data Example = C0 Bool Bool | C1 Bool deriving (6, 5, 7, 8) cardinality = 6 -- 2 * 2 + 2 -- Bool * Bool | Bool enumeration = [ C0 False False , C0 False True , C0 True False , C0 True True , C1 False , C1 True ] enumeration == map  [0 .. 5] [0 .. 5] == map  enumeration  generic-dataStandard option for  : derive 1L for types with only nullary constructors (the same restrictions as in the  Phttps://www.haskell.org/onlinereport/haskell2010/haskellch11.html#x18-18400011.2Haskell 2010 report). generic-dataGeneric representation of 1 types.The optsG parameter is a type-level option to select different implementations.  generic-dataGeneric 9 generated with the  option.  instance 1 MyType where 9 =   : =   ; =   < =  = =  > =   generic-dataGeneric : generated with the  option. See also  .  generic-dataGeneric ; generated with the  option. See also  . generic-dataGeneric < generated with the  option. See also  . generic-dataGeneric = generated with the  option. See also  . generic-dataGeneric > generated with the  option. See also  . generic-dataGeneric 9 generated with the  option.  instance 1 MyType where 9 =  : =  ; =  < =  = =  > =   generic-dataGeneric : generated with the  option. See also . generic-dataGeneric ; generated with the  option. See also . generic-dataGeneric < generated with the  option. See also . generic-dataGeneric = generated with the  option. See also . generic-dataGeneric > generated with the  option. See also . generic-dataUnsafe generic 9C. Does not check whether the argument is within valid bounds. Use   or  instead. generic-dataGeneric 9. Use   or  instead. generic-dataGeneric :. Use   or  instead. generic-data genumMin == gfromEnum gminBound generic-data genumMax == gfromEnum gmaxBound generic-dataGeneric ;. Use   or  instead. generic-dataGeneric <. Use  or  instead. generic-dataGeneric =. Use  or  instead. generic-dataGeneric >. Use  or  instead.  generic-dataGeneric ?.  instance 0 MyType where ? =   3 = ! ! generic-dataGeneric 3. See also  .    !  !  Safe -.>HUVXkFn, generic-dataArity of a constructor.- generic-data&Number of constructors of a data type.,-./-.,/Safe-.=>?HUVXki"0 generic-data Remove an @ type constructor.1 generic-dataA placeholder for A values.2 generic-data Inferred strictness of a field (B).3 generic-data"Strictness annotation of a field (B).4 generic-data$Unpackedness annotation of a field (B).5 generic-data;Name of the record field; undefined for non-record fields (B).6 generic-dataJust- the name of the record field, if it is one (B).7 generic-dataTrue for a record constructor (C).8 generic-dataFixity of the constructor (C).9 generic-dataName of the constructor (C).: generic-dataTrue if the data type is a newtype (D).; generic-data4Name of the package where the data type is defined (D)< generic-data3Name of the module where the data type is defined (D)= generic-dataName of the data type (D).> generic-dataA field of the @ type constructor.? generic-data:Generic representations that contain constructor metadata.G generic-dataConstraint synonym for 8 and  GConstructor.H generic-data'An opaque identifier for a constructor.J generic-data7Generic representations that contain datatype metadata.O generic-data9Name of the first data constructor in a type as a string. O @(E AnyType) = "Maybe" P generic-data?Name of the module where the first type constructor is defined. P @(E AnyType) = "GHC.Base" Q generic-data@Name of the package where the first type constructor is defined. Q @(E AnyType) = "base" R generic-dataF, if the first type constructor is a newtype.T generic-data)Name of the first constructor in a value. T (G 0) = "Just" U generic-data$The fixity of the first constructor. U (G 0) = H U ([] :*: id) = I J 6 V generic-dataF if the constructor is a record. V (G 0) = K V ( 0) = F -- newtype  a = Sum { getSum :: a } W generic-dataNumber of constructors. W @(E AnyType) = 2 X generic-dataIndex of a constructor. X Nothing = 0 X (Just "test") = 1 Y generic-dataIdentifier of a constructor.Z generic-data8Index of a constructor, given its identifier. See also X.[ generic-data Name of a constructor. See also T.\ generic-dataAll constructor identifiers. W @a = length (\ @a) ] generic-data)This must not be called on an empty type.^ generic-data)This must not be called on an empty type.50123456789:;<=>?@ABDCEFGHIJNMLKOPQRSTUVWXYZ[\]^_`abcd5OPQRSJNMLKTUVWXHIYZ[\]^GEF_`abcd?@ABDC>=<;:9876543210None ,.=>?HUVmr generic-dataClass of newtypes.s generic-dataGeneric newtype destructor.t generic-dataGeneric newtype constructor.nopqrstrqponstNoneMx v generic-dataA higher-kinded version of y.y generic-datapA newtype with trivial instances, that considers every value equivalent to every other one, and shows as just "_".| generic-data.A newtype whose instances for simple classes (6, 5, L, 7)) use higher-kinded class instances for f (M, N, O, P). generic-data Shown as "_". generic-data All equal. generic-data All equal. generic-data Shown as "_". generic-data All equal. generic-data All equal. generic-data Shown as "_". generic-data All equal. generic-data All equal. generic-data Shown as "_". generic-data All equal. generic-data All equal. vwxyz{|}~ |}~yz{vwxSafe ,.=>?@AUVf{ generic-dataGeneric representation of P types. generic-dataGeneric representation of 7 types. generic-dataGeneric Q.  instance 7 MyType where Q =   generic-dataGeneric R.None 456>HMVk7 generic-dataSynthetic data type.A wrapper to view a generic SL as the datatype it's supposed to represent, without needing a declaration. generic-dataXConversion between a generic type and the synthetic type made using its representation. generic-data Inverse of . None-Hb generic-data'Coerce while preserving the type index. generic-dataElimination of V1. generic-data#A helper for better type inference. generic-data#A helper for better type inference. generic-data$Lift binary combinators generically. None>  generic-dataGeneric (T).  instance 6 MyType where (T) =   generic-dataGeneric U.  instance 5 MyType where U =   generic-dataGeneric (V) (or W).  instance X MyType where (V) =   See also . generic-dataGeneric Y.  instance Z MyType where Y =   generic-dataGeneric (V) (or W).The difference from  is the Z constraint instead of X#, for older versions of base where X is not a superclass of Z. generic-dataGeneric [.  instance \ MyTypeF where [ =   generic-dataGeneric (]). See also . generic-dataGeneric ^.  instance _ MyTypeF where ^ =  (`) =   generic-dataGeneric (`) (or ). See also . generic-dataGeneric a. See also . generic-dataGeneric b.  instance c MyTypeF where b =  (d) =   generic-data Generic (d). See also . generic-dataGeneric e.  instance f MyTypeF where e =   generic-dataGeneric g.  instance f MyTypeF where g =   See also . generic-dataGeneric h.  instance i MyTypeF where h =   generic-dataGeneric j.  instance i MyTypeF where j =   See also . generic-dataGeneric k. generic-dataGeneric l. None>HV generic-data Type with instances derived via m. generic-data Type with 1 instance derived via 8 with  option. generic-data Type with instances derived via 8. None"[  !23456789:;<=>?GHJOPQRTUVWXYZ[\rstvwxyz{|}~[  !|}~yz{vwxrtsOPQRJTUVWXG?HYZ[\>=<;:98765432 None1MUVfXNoneUV None-.=>?@AHUVX  generic-datafUnify the "spines" of two generic representations (the "spine" is everything except the field types). generic-dataClosed type family for . generic-data?Define a function for a fixed set of strings, and fall back to f for the others. generic-dataConstant function. generic-data1Empty function (compile-time error when applied). generic-dataIdentity function n -> n. generic-dataf @@ s; is the application of a type-level function symbolized by f to a s :: n. A function FooToBar can be defined as follows: %data FooToBar type instance FooToBar  "foo" = "bar"  generic-data'Rename constructors using the function rnm given as a parameter. ddata Foo = Bar { baz :: Zap } -- becomes, renaming "Bar" to "Car" -- data Foo = Car { baz :: Zap } generic-data!Rename fields using the function rnm given as a parameter. ddata Foo = Bar { baz :: Zap } -- becomes, renaming "baz" to "bag" -- data Foo = Bar { bag :: Zap } generic-dataForget that a type is a newtype. 8newtype Foo = Bar Baz -- becomes -- data Foo = Bar Baz  generic-data4Forget that a type was declared using record syntax. @data Foo = Bar { baz :: Zap } -- becomes -- data Foo = Bar Zap"Concretely, set the last field of C to K and forget field names.) generic-data ?onData :: _ => (a -> b) -> (a -> b) -- possible specializationCan be used with  generic-lens& for type-changing field updates with field_& (and possibly other generic optics).VA specialization of the identity function to be used to fix types of functions using  as input or output, unifying the "spines" of input and output generic representations (the "spine" is everything except field types, which may thus change). !"#$%&'()!" #$%&'()NoneV !"#$%&'()) !"#$%&'(o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_``abcdefghijklmnopqrstuvwxyz{|}~                                         ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >?@?ABCD?EBCFBGHBGIJKLM?N?O?P?Q?R?S?TLULVLWLXLYZ[BC\Z]L^L_L`BCabcdefgJhiLjBGkBGlmnmompmqmrmsmtmumvmwmxmymzm{m|}~}}LBC*generic-data-0.4.0.0-JKKA0K7xilAIbpRzHLlpOGeneric.Data.Internal.CompatGeneric.Data.Internal.EnumGeneric.Data.Internal.FunctionsGeneric.Data.Internal.MetaGeneric.Data.Internal.NewtypeGeneric.Data.Internal.ResolversGeneric.Data.Internal.ShowGeneric.Data.Internal.DataGeneric.Data.Internal.UtilsGeneric.Data.Internal.Prelude!Generic.Data.Internal.GenericallyGeneric.Data.Orphans"Generic.Data.Internal.Microsurgery Generic.Datagcompare Data.MonoidSum Control.MonadapGeneric.Data.TypesGeneric.Data.Microsurgerybase GHC.TypeNatsDivData.Functor.Classes readPrec1GBounded gMinBound gMaxBound FiniteEnum StandardEnumGEnum gCardinality gFromEnumgToEnumgtoEnum gfromEnum genumFrom genumFromThen genumFromTogenumFromThenTo gtoFiniteEnumgfromFiniteEnumgfiniteEnumFromgfiniteEnumFromThengfiniteEnumFromTogfiniteEnumFromThenTo gtoEnumRaw'gtoEnum' gfromEnum'genumMingenumMax genumFrom'genumFromThen' genumFromTo'genumFromThenTo' gminBound gmaxBound $fGEnumoptsU1$fGEnumopts:+: $fGEnumoptsM1$fGEnumFiniteEnumK1$fGEnumFiniteEnum:*: $fGBounded:*: $fGBounded:+: $fGBoundedK1 $fGBoundedU1 $fGBoundedM1NFields NConstructors nconstructorsnfieldsUnM1 DummyMetaMetaSelStrictnessMetaSelSourceStrictness MetaSelUnpack MetaSelName MetaSelNameMMetaConsRecordMetaConsFixity MetaConsNameMetaDataNewtypeMetaDataPackageMetaDataModule MetaDataNameMetaOf GConstructorsgConIdToStringgConIdgConNum gConFixity gConIsRecordGConId ConstructorsConId GDatatype gDatatypeName gModuleName gPackageName gIsNewtype gdatatypeName gmoduleName gpackageName gisNewtype fromDatatypegconName gconFixity gconIsRecordgconNum gconIndexconId conIdToInt conIdToString conIdEnumconIdMinconIdMax gConIdToInttoConId fromConIdreGConId gConIdMin gConIdMax$fGDatatype->M1$fGConstructorskM1$fGConstructorsk:+:$fGConstructorskM10$fConstructorsa $fEqConId $fOrdConId $fEqGConId $fOrdGConId NewtypeErrNewtype'GOldOldNewtypeunpackpack $fNewtypeaOpaque1 unOpaque1OpaqueunOpaqueId1unId1 $fShowId1 $fReadId1$fOrdId1$fEqId1 $fShow1Opaque $fOrd1Opaque $fEq1Opaque $fShowOpaque $fOrdOpaque $fEqOpaque$fShow1Opaque1 $fOrd1Opaque1 $fEq1Opaque1 $fShowOpaque1 $fOrdOpaque1 $fEqOpaque1$fEq1Id1 $fOrd1Id1 $fRead1Id1 $fShow1Id1 GShowSinglegPrecShowsSingle GShowNamedgPrecShowsNamed GShowFieldsgPrecShowsFieldsGShowC gPrecShowsCGShow gPrecShowsGShow1 ShowsPrecGShow0 gshowsPrec gprecShowsgliftShowsPrecgLiftPrecShows $fGShowpV1 $fGShowp:+: $fGShowpM1 $fGShowpM10$fGShowFieldspU1$fGShowFieldsp:*:$fGShowCpMetaConsf$fGShowNamedpU1$fGShowNamedp:*:$fGShowCpMetaConsf0$fGShowSinglep:.:$fGShowSingleIdentityPar1$fGShowSingleIdentityRec1$fGShowSinglepK1$fGShowNamedpM1$fGShowFieldspM1DataunDatatoDatafromData $fBoundedData $fEnumData $fShow1Data $fShowData$fGeneric1TYPEData $fGenericData $fFunctorData$fFoldableData$fTraversableData$fApplicativeData$fAlternativeData $fMonadData$fMonadPlusData$fContravariantData$fEqData $fOrdData $fEq1Data $fOrd1Data$fSemigroupData $fMonoidDatacoerce'absurd1from'to'liftG2geqgmappendgmempty gmappend'gfmap gconstmapgpuregapgliftA2gemptygaltgfoldMapgfoldr gtraverse gsequenceAgliftEq gliftCompare Generically1unGenerically1FiniteEnumerationunFiniteEnumeration Generically unGenerically$fBoundedGenerically$fEnumGenerically$fMonoidGenerically$fSemigroupGenerically$fShowGenerically$fOrdGenerically$fEqGenerically$fGenericGenerically$fEnumFiniteEnumeration$fGenericFiniteEnumeration$fTraversableGenerically1$fFoldableGenerically1$fAlternativeGenerically1$fApplicativeGenerically1$fFunctorGenerically1$fShowGenerically1$fShow1Generically1$fOrdGenerically1$fOrd1Generically1$fEqGenerically1$fEq1Generically1$fGeneric1TYPEGenerically1$fGenericGenerically1 $fOrd1:.:$fEq1:.: $fOrd1Par1 $fEq1Par1 $fOrd1Rec1 $fEq1Rec1 $fOrd1:+:$fEq1:+: $fOrd1:*:$fEq1:*:$fOrd1K1$fEq1K1$fOrd1U1$fEq1U1$fOrd1V1$fEq1V1$fOrd1M1$fEq1M1UnifyRepSRename'SRenameSConstSErrorSId@@ RenameConstrs RenameFieldsTypeage Derecordify derecordify underecordifytypeage untypeage renameFieldsunrenameFields renameConstrsunrenameConstrsonData$fUnifyRepkV1g'$fUnifyRepkU1g'$fUnifyRepkK1g'$fUnifyRepk:*:g'$fUnifyRepk:+:g'$fUnifyRepkM1g'GHC.EnumBoundedEnumghc-prim GHC.TypesIntmaxBoundWord GHC.ClassesOrdEqGHC.ShowShow GHC.GenericsGenerictoEnumfromEnumenumFrom enumFromThen enumFromToenumFromThenTominBoundM1MetaMetaSelMetaConsMetaData GHC.MaybeMaybeTrueJustPrefixInfixRightAssociativeFalseGHC.ReadReadEq1Ord1Read1Show1 showsPrec liftShowsPrecRep==compareGHC.Base<>mappend SemigroupmemptyMonoidfmapFunctor<$pure Applicative<*>liftA2empty Alternative<|> Data.FoldablefoldMapFoldablefoldrData.Traversabletraverse Traversable sequenceAliftEq liftCompareGeneric1Symbol