úÎ&R"ô     Safe6;<=FSTV] GType that represents meta information about fields of one constructor.>Record constructor, containing the list of the selector names.^Constructor with fields, but without selector names. The argument gives the number of fields.Constructor without fields. %Type for meta information about ADTs.unqualified name of the type   Safe+.06;<=>?FSTV]x !"#$%&'()*+,-./0123 !"None ;<=FTV!È An instance ( a) allows us to2convert values of an arbitrary algebraic datatype a* to and from a generic representation ( a) (see  and ).(extract meta information about the type a (see )./Once an algebraic datatype has an instance for  it automatically gets one for .m is a type level function that maps arbitrary ADTs to isomorphic generic representations. Here's an example:  data Foo = A Int Bool | B Stringwould be mapped to: 3Either (Int, (Bool, ())) (Either (String, ()) Void))These representations follow these rules::The choice between constructors is mapped to right-nested 4s.&There's always a so-called end-marker !. It's an invalid choice (and U is uninhabited to make sure you don't accidentally create such a value). So e.g.  data Foo = A would be mapped to Either () Void2, and a type with no constructors is mapped to Void.@The fields of one constructor are mapped to right-nested tuples.6Again there's always an end-marker, this time of type ()%. A constructor with three fields a, b, c is mapped to (a, (b, (c, ()))) , one field a is mapped to (a, ())!, and no fields are mapped to () (just the end-marker).ÇThese rules (and the end-markers) are necessary to make sure generic functions know exactly which parts of the generic representation are field types and which parts belong to the generic skeleton.Convert a value of type a to its generic representation./Convert a value in a generic representation to a (inverse of ).'Extract meta information about the ADT.   Safe"Í56789:;<=        !"#$%&'()**+, -./0123456789:;<=>?@AB'generics-eot-0.4-9yYJJ4Kwq7Z8WA3oKQr5tU Generics.EotGenerics.Eot.DatatypeGenerics.Eot.EotPaths_generics_eotbase GHC.GenericsGeneric Data.VoidabsurdVoid Data.ProxyProxyFields Selectors NoSelectorsNoFields ConstructorconstructorNamefieldsDatatype datatypeName constructorsHasEotEottoEotfromEotdatatype $fHasEota GenericFields getFieldsCGenericConstructorsgetConstructorsGenericDatatype datatypeC getFieldsgetFieldHasEotGEotGtoEotGfromEotGConcat+++unConcat HasFieldsG toEotFields fromEotFields NormalizeGEithergLeftgRightgEitherHasConstructorsG ConstructorstoEotConstructorsfromEotConstructors Data.EitherEitherversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName