úÎPeK—N      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM non-portable experimentalsjoerd@w3future.com Safe-Inferred         non-portable experimentalsjoerd@w3future.comNone MAdd an instance for this class if the data type has exactly one constructor. This class has no methods. ,Type class for algebraic data types of kind * -> *. Minimal implementation:  and either   if the type t is not recursive, or  if the type t is recursive. The constraints needed to run  and . > It should be a list of all the types of the subcomponents of t, each applied to c. NGives the index of the constructor of the given value in the list returned by  and .  ctorInfo n7 gives constructor information, f.e. its name, for the nth constructor. 5 The first argument is a dummy argument and can be (undefined :: t a). YTell the compiler which class we want to use in the traversal. Should be used like this:   (For :: For Show) Where Show can be any class. " specialized to the N applicative functor. # specialized to the O3 applicative functor, which collects monoid values m. $"- for data types with exactly one constructor %,Get the value from the result of one of the builds+ functions that matches the constructor of t. Witness for the constraint c. Witness for the constraint c.  !"#$%&'()PQ*  !"#$%&'() !()%&'"#$ !"#$%&'()PQ non-portable experimentalsjoerd@w3future.comNone*+,-./0*+,-./0*+,-./0*+,-./0 non-portable experimentalsjoerd@w3future.comNone1MAdd an instance for this class if the data type has exactly one constructor. This class has no methods. 2,Type class for algebraic data types of kind *. Minimal implementation: 4 and either 6  if the type t is not recursive, or 7 if the type t is recursive. 3The constraints needed to run 6 and 7. > It should be a list of all the types of the subcomponents of t, each applied to c. 4NGives the index of the constructor of the given value in the list returned by 6 and 7. 5 ctorInfo n7 gives constructor information, f.e. its name, for the nth constructor. 5 The first argument is a dummy argument and can be (undefined :: t). 8YTell the compiler which class we want to use in the traversal. Should be used like this:   (For :: For Show) Where Show can be any class. :6 specialized to the N applicative functor. ;6 specialized to the O3 applicative functor, which collects monoid values m. <5Transform a value by transforming each subcomponent. =TFold a value, by mapping each subcomponent to a monoid value and collecting those. >AApplicative traversal given a way to traverse each subcomponent. ?:- for data types with exactly one constructor @JDerive a 0-ary operation by applying the operation to every subcomponent. AJDerive a unary operation by applying the operation to every subcomponent. BKDerive a binary operation by applying the operation to every subcomponent. CHGet the subcomponent by using the projector from the field information. D,Get the value from the result of one of the builds+ functions that matches the constructor of t. 123456Witness for the constraint c. $This function should return a value  for each subcomponent of t$, wrapped in an applicative functor f. It is given [ information about the field, which contains a projector function to get the subcomponent  from a value of type t7. The type of the subcomponent is an instance of class c. 4A list of results, one for each constructor of type t. Each element is the X result of applicatively applying the constructor to the results of the given function $ for each field of the constructor. 7Witness for the constraint c. $This function should return a value  for each subcomponent of t$, wrapped in an applicative functor f. It is given [ information about the field, which contains a projector function to get the subcomponent  from a value of type t7. The type of the subcomponent is an instance of class c. $This function should return a value  for each subcomponent of t that is itself of type t. 4A list of results, one for each constructor of type t. Each element is the X result of applicatively applying the constructor to the results of the given function $ for each field of the constructor. 89:;<=>?@ABCDRSTUVWXYZ[\]' 123456789:;<=>?@ABCD245367189CD:;<=>?@AB124536789:;<=>?@ABCDRSTUVWXYZ[\] non-portable experimentalsjoerd@w3future.comNone EFGHIJKLM EFGHIJKLM EFGHIJKLM EFGHIJKLM^        !!"#$%&'()*+,-./0123456  &'789(:;<,)=>?@ABCDEFGHFIJKLMNOPQRSTUVWXY one-liner-0.2Generics.OneLiner.ADT1Generics.OneLiner.InfoGenerics.OneLiner.Functions1Generics.OneLiner.ADTGenerics.OneLiner.Functionsghc-primGHC.Prim Constraint FieldInfo SelectorInfo selectorNameproject AssociativityNotAssociativeRightAssociativeLeftAssociativeFixityInfixPrefixCtorInfoctorNameisRecordfixityctor ADT1RecordADT1 Constraints ctorIndexctorInfobuildsA buildsRecAForExtract getExtract:~>NatgetNatbuildsmbuildsbuildatparam component!!~fmapADT foldMapADT traverseADTpureADTapADTbindADTmfixADT ADTRecordADTgmapgfoldMap gtraverseop0op1op2eqADT compareADT minBoundADT maxBoundADT showsPrecADT readPrecADT memptyADT mappendADTfromIntegerADTtransformers-0.3.0.0Data.Functor.IdentityIdentityData.Functor.ConstantConstant$fADT1[] $fADT1Maybe$fADT[] $fADTMaybe $fADTEither $fADTBool$fADTRecord(,,,) $fADT(,,,)$fADTRecord(,,) $fADT(,,)$fADTRecord(,)$fADT(,) $fADTRecord()$fADT()