úÎ!)—%‘@      !"#$%&'()*+,-./0123456789:;<=>?Safe7=>?HUVX_ Š knitGType that represents meta information about fields of one constructor. knit>Record constructor, containing the list of the selector names. knit^Constructor with fields, but without selector names. The argument gives the number of fields.knitConstructor without fields.knit%Type for meta information about ADTs.knitunqualified name of the type    Safe,./17=>?@AHUVX_ &'()*+()*+&'None =>?HVX$n:knit 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 :.;knit;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 @s.&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.<knitConvert a value of type a to its generic representation.=knit/Convert a value in a generic representation to a (inverse of <).>knit'Extract meta information about the ADT. &':;<=>:;<=>&' Safe%lABCDEFGHI        !"#$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNO0knit-0.2.0.0-H7fhpoyhgrYG50oB6CipMF-generics-eot Generics.EotGenerics.Eot.DatatypeGenerics.Eot.Eot Paths_knitbase GHC.GenericsGeneric Data.VoidabsurdVoid Data.ProxyProxy GenericFields getFieldsCGenericConstructorsgetConstructorsGenericDatatype datatypeCFields Selectors NoSelectorsNoFields ConstructorconstructorNamefieldsDatatype datatypeName constructors getFieldsgetField$fGenericConstructorsV1$fGenericConstructors:+:$fGenericDatatypeM1$fGenericFieldsU1$fGenericFieldsM1$fGenericFields:*:$fGenericConstructorsM1 $fShowFields $fEqFields$fShowConstructor$fEqConstructor$fShowDatatype $fEqDatatypeNamedHasEotGEotGtoEotGfromEotG$fHasConstructorsGV1 $fHasEotGM1$fNormalizeVoidb$fNormalizeEitherc$fHasConstructorsG:+:$fHasFieldsGU1$fHasConstructorsGM1$fHasFieldsGM1$fHasFieldsGM10 $fConcat()bs $fConcat(,)bs$fHasFieldsG:*: $fShowNamed $fShowUnnamedHasEotEottoEotfromEotdatatype $fHasEota Data.EitherEitherversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName