h*2-T      !"#$%&'()*+,-./0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ `abcdefghijklmnopqrstuvwxyz{|}~0.6.0 Safe-Inferred )1=>c Safe-Inferred )1=> Safe-Inferred )1=>generic-data-functions? without the value (only used as a proxy). Lets us push our s into one place.generic-data-functions? without the value (only used as a proxy). Lets us push our s into one place.generic-data-functions? without the value (only used as a proxy). Lets us push our s into one place.generic-data-functions.Get the record name for a selector if present.On the type level, a 'Maybe Symbol' is stored for record names. But the reification is done using  fromMaybe "". So we have to inspect the resulting string to determine whether the field uses record syntax or not. (Silly.)generic-data-functions1 for the generic representation of the void type. Safe-Inferred)1=>generic-data-functions8Reify a list of type-level strings. Order is maintained. generic-data-functionsAppend for type-level lists. generic-data-functions2List every constructor name in a generic type rep.    Safe-Inferred )1=>5 Safe-Inferred )1=>generic-data-functions2Type-level parser tag. Return the string unparsed. Safe-Inferred)1=>Qgeneric-data-functions3Unwrap a generic constructor parse result. Emits a  on parse failure.generic-data-functions6Types defining constructor name parsers (inner class).We're forced to separate this associated type family from the other class due to GHC complaining "type constructor cannot be used here (it is defined and used in the same recursive group)".When defining instances of these two classes, ensure that you place an empty TH splice e.g.  $(pure [])1 between the instances. This is due to a GHC bug.generic-data-functions+Result kind of the constructor name parser.generic-data-functions(Types defining constructor name parsers.When defining instances of these two classes, ensure that you place an empty TH splice e.g.  $(pure [])1 between the instances. This is due to a GHC bug.generic-data-functionsConstructor name parser.The Symparsec library generates type families that look like this. See "Generic.Data.Cstr.Parser.Symparsec for handy definitions.generic-data-functionsConstraint enabling reification of the parsed type-level constructor name.For example, you might reify '(a, b) :: (Symbol, Symbol) with (KnownSymbol a, KnownSymbol b).generic-data-functions6Constructor name parse result demotion function using . Safe-Inferred )1=>generic-data-functions8Free generic wrapper where any field emits a type error.3Useful for generic functions on void or enum types.Note that the type you use here must still fulfill any requirements e.g. for generic foldMap, it must be a , even though the instance won't be used. We could perhaps falsify these requirements with some dictionary cleverness, which would make using this a little easier. But I think it would be in bad taste.Consider it a further-limited .generic-data-functions$generic-data-functions2Implementation enumeration type class for generic .The type variable is uninstantiated, used purely as a tag. Good types include the type class used inside (providing you define the type class/it's not an orphan instance), or a custom void data type. See the binrep library on Hackage for an example.%generic-data-functions The target  to  to.&generic-data-functions'The type class providing the action in  for permitted types.'generic-data-functionsThe action in  (first argument).We include data type metadata because this function is useful for monadic parsers, which can record it in error messages. (We don't do it for foldMap because it's pure.)(generic-data-functions%Action to run when trying to parse a  (void data type). Defaults to 4, but you may wrap it in your functor if it pleases.)generic-data-functions over types where all fields are replaced with the functor's .1Note that one may write a valid instance using a  on a>s instead. I don't think you should. But I can't explain why.*generic-data-functions. over types with no fields in any constructor.'generic-data-functionsdata type name generic-data-functionsconstructor name generic-data-functionsrecord name (if present) generic-data-functions field index  !"#$('&% $('&%#!"   Safe-Inferred)1=>6generic-data-functions!Combine constructor options with  ("or").01232301  Safe-Inferred)1=>89:;:;89  Safe-Inferred )1=>@generic-data-functionsGeneric " over a term of non-sum data type f a , where f is set by the tag you pass. $%&'(@:A2B $%&'(@:A2B  Safe-Inferred)1=> Cgeneric-data-functions' on individual constructors (products).Egeneric-data-functions2Implementation enumeration type class for generic .The type variable is uninstantiated, used purely as a tag. Good types include the type class used inside (providing you define the type class/it's not an orphan instance), or a custom void data type. See the binrep library on Hackage for an example.Fgeneric-data-functions The target  to  to.Ggeneric-data-functions-The type class providing the map function in  for permitted types.Hgeneric-data-functionsThe map function in  (first argument).Igeneric-data-functions$ over types where all fields map to .Jgeneric-data-functions. over types with no fields in any constructor.Kgeneric-data-functionsWow, look! Nothing!Mgeneric-data-functions' on individual constructors (products).CDEHGFEHGFCD  Safe-Inferred)1=>gTgeneric-data-functionsSum type handler handling constructors only. Useful if you handle constructor prefixes elsewhere. NOPQRSTUVW VWTURSQPON Safe-Inferred)1=>`abcdedebc`a Safe-Inferred)1=>lgeneric-data-functions! over generic product data types.Take a generic representation, map each field in the data type to a  , and combine the results with ().lmlm Safe-Inferred )1=>"rgeneric-data-functionsGeneric " over a term of non-sum data type a.a# must have exactly one constructor.sgeneric-data-functionsGeneric  over a term of sum data type a.You must provide a type tag for parsing constructor names on the type-level, and a function for reifying such results to monoidal values.tgeneric-data-functionsGeneric  over a term of sum data type a.You must provide a function for mapping constructor names to monoidal values.ugeneric-data-functionsGeneric  over a term of sum data type a where constructors are mapped to their index (distance from first/leftmost constructor)a% must have at least two constructors.You must provide a function for mapping bytes to monoidal values.This should be fairly fast, but sadly I think it's slower than the generics in store and binary/cereal libraries. EFGHrlsdtuV EFGHrlsdtuV Safe-Inferred )1=>" vxwyz{}|~ {}|yzvxw~ Safe-Inferred)1=>$generic-data-functionsTODOThe type variable is uninstantiated, used purely as a tag. Good types include the type class used inside (providing you define the type class/it's not an orphan instance), or a custom void data type. See the binrep library on Hackage for an example.generic-data-functions#over types where all fields map to generic-data-functions,over types with no fields in any constructor Safe-Inferred)1=>%= Safe-Inferred)1=>% Safe-Inferred )1=>'Jgeneric-data-functions0Generic contra over a term of non-sum data type a.a# must have exactly one constructor.generic-data-functions,Generic contra over a term of sum data type a.9You must provide a contra function for constructor names.This is the most generic option, but depending on your string manipulation may be slower. Safe-Inferred )1=>);generic-data-functionsReverse a type level list.generic-data-functionsGet the path to a named constructor in a generic type representation.%The D1 meta must already be stripped.generic-data-functionsWhich direction to take at a  constructor choice.generic-data-functions left (the  constructor)generic-data-functions right (the  constructor) Safe-Inferred)1=>,generic-data-functions$Run a generic functor (provided via tag) on the constructor name name.We hope and pray that GHC removes the generic wrappers, at least the constructor ones, since we do a whole bunch of nothing with them on the term level. Checking this (the produced Core) is a big TODO.generic-data-functions9What generic functor to run on the requested constructor.generic-data-functionsFunctor.generic-data-functionsConstraint. Includes relevant generic meta (data type & constructor name).generic-data-functionsGeneric functor.We have to pass a proxy thanks to type applications not working properly with instances. (This will be easier in GHC 9.10 via RequiredTypeArguments).generic-data-functionsRun a generic functor on the requested constructor of the given type.   Safe-Inferred )1=>-? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { |}~$generic-data-functions-0.6.0-inplace"Generic.Data.Function.Common.Error$Generic.Data.Function.Common.Generic)Generic.Data.Function.Common.Generic.Meta%Generic.Data.Function.Common.TypeLitsGeneric.Data.MetaParse.InternalGeneric.Data.MetaParse.CstrGeneric.Data.Wrappers*Generic.Data.Function.Traverse.Constructor"Generic.Data.Function.Traverse.Sum%Generic.Data.Function.Traverse.NonSumGeneric.Data.Function.Traverse)Generic.Data.Function.FoldMap.Constructor)Generic.Data.Function.FoldMap.SumConsByte!Generic.Data.Function.FoldMap.Sum$Generic.Data.Function.FoldMap.NonSumGeneric.Data.Function.FoldMapGeneric.Data.Function.Example(Generic.Data.Function.Contra.Constructor Generic.Data.Function.Contra.Sum#Generic.Data.Function.Contra.NonSumGeneric.Data.Function.ContraGeneric.Type.CstrPathGeneric.Data.FOnCstrgeneric-data-functionsGeneric.Data.Function Data.VoidabsurdPaths_generic_data_functionswrapEeNoEmptyeNoSum datatypeName'conName'selName' selName''absurdV1 KnownSymbols symbolVals++ CstrNames$fKnownSymbolsList[]$fKnownSymbolsList:natVal'' natValInt symbolVal''Raw ForceGCParse CstrParser'CstrParseResult CstrParser ParseCstrReifyCstrParseResult ParseCstrTo$fCstrParser'TYPERaw$fCstrParserTYPERawENoRec0NoRec0 EmptyRec0ReifyMaybeSymbolreifyMaybeSymbol ProdArity GTraverseC gTraverseCENoEmptyGenericTraverseGenericTraverseFGenericTraverseCgenericTraverseActiongenericTraverseV1$fGenericTraverseTYPEEmptyRec0$fGenericTraverseTYPENoRec0$fGTraverseCkktagcdcc0U1$fGTraverseCkTYPEtagcdccsi:*:$fReifyMaybeSymbolJust$fReifyMaybeSymbolNothing$fGTraverseCkktagcdccsiM1 GTraverseCSum gTraverseCSum GTraverseSum gTraverseSum$fGTraverseSumkkktagsumtagV1#$fGTraverseCSumkkktagsumtagdtNameM1$$fGTraverseCSumkkktagsumtagdtName:+:$fGTraverseSumkkktagsumtagM1GTraverseNonSumDgTraverseNonSumDGTraverseNonSumgTraverseNonSum$fGTraverseNonSumDkktagcdV1$fGTraverseNonSumDkktagcd:+:$fGTraverseNonSumDkktagcdM1$fGTraverseNonSumkktagM1genericTraverseNonSumgenericTraverseSumgenericTraverseSumRaw GFoldMapC gFoldMapCGenericFoldMapGenericFoldMapMGenericFoldMapCgenericFoldMapF$fGenericFoldMapTYPEEmptyRec0$fGenericFoldMapTYPENoRec0$fGFoldMapCkktagU1$fGFoldMapCkktagM1$fGFoldMapCkktag:*:TypeErrorMessageFitsInByteResult FitsInByteSumArityGFoldMapCSumCtrArityBytegFoldMapCSumCtrArityByteGFoldMapCSumCtrgFoldMapCSumCtrGFoldMapSumConsBytegFoldMapSumConsByte$fGFoldMapSumConsBytekkmV1$fGFoldMapSumConsBytekkmM1$fGFoldMapSumConsBytekktagM1$fGFoldMapCSumCtrkktagM1$fGFoldMapCSumCtrkktag:+:&$fGFoldMapCSumCtrArityBytekktagarityM1*$fGFoldMapCSumCtrArityBytekTYPEtagarity:+: $fGFoldMapSumConsBytekTYPEtag:+: GFoldMapCSum gFoldMapCSum GFoldMapSumD gFoldMapSumD GFoldMapSum gFoldMapSum#$fGFoldMapSumDkkkktagsumtagdtNameV1$fGFoldMapSumkkktagsumtagM1"$fGFoldMapCSumkkktagsumtagdtNameM1#$fGFoldMapCSumkkktagsumtagdtName:+:)$fGFoldMapSumDkkSymbolktagsumtagdtName:+:($fGFoldMapSumDkkSymbolktagsumtagdtNameM1GFoldMapNonSumgFoldMapNonSum$fGFoldMapNonSumkktagV1$fGFoldMapNonSumkktag:+:$fGFoldMapNonSumkktagM1$fGFoldMapNonSumkktagM10genericFoldMapNonSumgenericFoldMapSumgenericFoldMapSumRawgenericFoldMapSumConsByteShowlyunShowlyYXX1X2 showGeneric showGeneric'$fGenericFoldMapTYPEShowly$fSemigroupShowly$fMonoidShowly $fGenericY $fGenericXGContraCgContraC GenericContraGenericContraFGenericContraCgenericContraF$fGenericContraTYPEEmptyRec0$fGenericContraTYPENoRec0$fGContraCkktagU1$fGContraCkktagM1$fGContraCkktag:*: GContraCSum gContraCSum GContraSumD gContraSumD GContraSum gContraSum$fGContraSumDkktagV1$fGContraSumkktagM1$fGContraCSumkktagM1$fGContraCSumkktag:+:$fGContraSumDkktagM1$fGContraSumDkktag:+:GContraNonSumDgContraNonSumD GContraNonSum gContraNonSum$fGContraNonSumDkktagV1$fGContraNonSumDkktag:+:$fGContraNonSumDkktagM1$fGContraNonSumkktagM1genericContraNonSumgenericContraSum GCstrPath GCstrChoiceGoL1GoR1 GFOnCstr' gFOnCstr'AssertValidCstrPathGFOnCstrgFOnCstrGenericFOnCstrGenericFOnCstrFGenericFOnCstrCgenericFOnCstrFgenericFOnCstr"$fGFOnCstr'kktagdtNamecstrName[]M1"$fGFOnCstr'kktagdtNamecstrName::+:#$fGFOnCstr'kktagdtNamecstrName::+:0$fGFOnCstrkktagcstrNameM1base GHC.Generics datatypeNameGHC.Err undefinedconNameselName GHC.TypeError TypeErrorghc-primGHC.PrimProxy#GHC.BaseMonoidmemptyData.Traversabletraverse ApplicativeV1errorempty<|> Data.FoldablefoldMap<>Reverse:+:L1R1version getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDir