Îõ³h$ 5 ÆÀ      !"#$%&'()*+,-./0123456789:;<=>? Safe-Inferred8>?ÀÉÖ×ÙàÉ knitÇType 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-Inferred-/028>?ÀÁÂÉÖ×Ùà3&'()*+()*+&'None >?ÀÉ×Ù b: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;í 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 Õ 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-Inferred ¹ABCDEFGHÉ        !"#$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNÏ0knit-0.3.0.0-AehwSfeHwbn1oWAmAobxkW-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$fShowDatatype $fEqDatatype$fShowConstructor$fEqConstructor $fShowFields $fEqFieldsNamedHasEotGEotGtoEotGfromEotG$fHasConstructorsGV1 $fHasEotGM1$fNormalizeVoidb$fNormalizeEitherc$fHasConstructorsG:+:$fHasFieldsGU1$fHasConstructorsGM1$fHasFieldsGM1$fHasFieldsGM10 $fConcat()bs $fConcat(,)bs$fHasFieldsG:*: $fShowUnnamed $fShowNamedHasEotEottoEotfromEotdatatype $fHasEota Data.EitherEitherversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName