{;oW      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV-non-portable (local universal quantification) experimentalgenerics@haskell.orgjWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-non-portable (local universal quantification) experimentalgenerics@haskell.orgjWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ non-portable (uses Data.Data) experimentalgenerics@haskell.org -non-portable (local universal quantification) experimentalgenerics@haskell.org-non-portable (local universal quantification) experimentalgenerics@haskell.org>"The type constructor for builders !The type constructor for readers !The type constructor for queries )The type constructor for transformations )The type constructor for transformations  'Other first-class polymorphic wrappers Wrapped generic functions;  recall: [Generic c] would be legal but [Generic' c] not. 0The general scheme underlying generic functions 5 assumed by gfoldl; there are isomorphisms such as  GenericT = Generic T. 'Generic readers, say monadic builders,  i.e., produce an "a" with the help of a monad "m". Generic builders  i.e., produce an "a". !Generic monadic transformations,  i.e., take an "a" and compute an "a" Generic queries of type "r",  i.e., take any "a" and return an "r" Generic transformations,  i.e., take an "a" and return an "a" Make a generic transformation; $ start from a type-specific case;  preserve the term otherwise Make a generic query; $ start from a type-specific case;  return a constant otherwise 'Make a generic monadic transformation; $ start from a type-specific case;  resort to return otherwise 5Make a generic monadic transformation for MonadPlus;  use " const mzero"/ (i.e., failure) instead of return as default. Make a generic builder; # start from a type-specific ase; . resort to no build (i.e., mzero) otherwise Flexible type extension 8Extend a generic transformation by a type-specific case /Extend a generic query by a type-specific case !@Extend a generic monadic transformation by a type-specific case "BExtend a generic MonadPlus transformation by a type-specific case #Extend a generic builder $Extend a generic reader %Left-biased choice on maybes &#Choice for monadic transformations 'Choice for monadic queries (?Recover from the failure of monadic transformation by identity )8Recover from the failure of monadic query by a constant *Flexible type extension +>Type extension of transformations for unary type constructors ,@Type extension of monadic transformations for type constructors -0Type extension of queries for type constructors .0Type extension of readers for type constructors /1Type extension of builders for type constructors Flexible type extension 0>Type extension of transformations for unary type constructors 1@Type extension of monadic transformations for type constructors 20Type extension of queries for type constructors 30Type extension of readers for type constructors 41Type extension of builders for type constructors .  !"#$%&'()*+,-./01234. !"#$   %()&'*+,-./01234.    !"#$%&'()*+,-./01234-non-portable (local universal quantification) experimentalgenerics@haskell.org56Apply a transformation everywhere in bottom-up manner 65Apply a transformation everywhere in top-down manner 75Variation on everywhere with an extra stop condition 8 Monadic variation on everywhere 92Apply a monadic transformation at least somewhere :5Summarise all nodes in top-down, left-to-right order ; Variation of  everything with an added stop condition <1Get a list of all entities that meet a predicate =3Look up a subterm by means of a maybe-typed filter >)Bottom-up synthesis of a data structure; < 1st argument z is the initial element for the synthesis; = 2nd argument o is for reduction of results from subterms; K 3rd argument f updates the synthesised data according to the given term ?,Compute size of an arbitrary data structure @9Count the number of immediate subterms of the given term A"Determine depth of the given term B;Determine the number of all suitable nodes in a given term C2Determine the number of all nodes in a given term D>Determine the number of nodes of a given type in a given term E:Find (unambiguously) an immediate subterm of a given type 56789:;<=>?@ABCDE56789:;<=>?@ABCDE56789:;<=>?@ABCDE -non-portable (local universal quantification) experimentalgenerics@haskell.org56789:;<=>?@ABCDE(non-portable (uses Data.Generics.Basics) experimentalgenerics@haskell.orgF Generic show: an alternative to " deriving Show" GGeneric shows H Generic read: an alternative to " deriving Read" FGHFGHFGH -non-portable (local universal quantification) experimentalgenerics@haskell.orgFGH-non-portable (local universal quantification) experimentalgenerics@haskell.org>The type constructor needed for the definition of gmapAccumQr GThe constant type constructor needed for the definition of gmapAccumQl FThe identity type constructor needed for the definition of gmapAccumT $A type constructor for accumulation Igfoldl with accumulation JgmapT with accumulation KApplicative version LgmapM with accumulation MgmapQl with accumulation NgmapQr with accumulation OgmapQ with accumulation PTwin map for transformation Q%Twin map for monadic transformation RTwin map for queries S$Generic equality: an alternative to " deriving Eq" TAGeneric zip controlled by a function with type-specific branches IJKLMNOPQRST IJLMNOKPQRST IJKLMNOPQRST -non-portable (local universal quantification) experimentalgenerics@haskell.org IJKLMNOPQRST non-portable experimentalgenerics@haskell.orgUGConstruct the empty value for a datatype. For algebraic datatypes, the ! leftmost constructor is chosen. VIReturn a list of values of a datatype. Each value is one of the possible . constructors of the datatype, populated with U values. UVUVUV-non-portable (local universal quantification) experimentalgenerics@haskell.orgUV-non-portable (local universal quantification) experimentalgenerics@haskell.org.  !"#$%&'()*+,-./01234(non-portable (uses Data.Generics.Basics) experimentalgenerics@haskell.orgWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV-non-portable (local universal quantification) experimentalgenerics@haskell.orgWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghigjkgjlgjmgjngjogjpgjqgjrghsghtghughvghwghxghyghzgh{gh|gh}gh~ghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghghgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgj syb-0.3 Data.GenericsData.Generics.AliasesData.Generics.SchemesData.Generics.TextData.Generics.TwinsData.Generics.BuildersData.Generics.BasicsGenerics.SYB.BasicsData.Generics.InstancesGenerics.SYB.InstancesGenerics.SYB.SchemesGenerics.SYB.TextGenerics.SYB.TwinsGenerics.SYB.BuildersGenerics.SYB.Aliases Generics.SYBghc-prim GHC.Generics:*::+:UnitInrInl GenericM'GMunGM GenericQ'GQunGQ GenericT'GTunGTGeneric' unGeneric'GenericGenericRGenericBGenericMGenericQGenericTmkTmkQmkMmkMpmkRext0extTextQextMextMpextBextRorElsechoiceMpchoiceQ recoverMprecoverQext1ext1Text1Mext1Qext1Rext1Bext2Text2Mext2Qext2Rext2B everywhere everywhere' everywhereBut everywhereM somewhere everything everythingButlistify something synthesizegsizeglengthgdepthgcount gnodecount gtypecount gfindtypegshowgshowsgread gfoldlAccum gmapAccumT gmapAccumA gmapAccumM gmapAccumQl gmapAccumQr gmapAccumQ gzipWithT gzipWithM gzipWithQgeqgzipemptyconstrsbase Data.DataData Data.TypeableTypeable Typeable1 Typeable2 Typeable3 Typeable4 Typeable5 Typeable6 Typeable7 tyconModule tyconUQname isNorepType mkNoRepType mkNorepType mkCharConstrmkStringConstr mkRealConstr mkFloatConstrmkIntegralConstr mkIntConstr mkCharType mkStringType mkFloatType mkIntTypemaxConstrIndex constrIndex indexConstr isAlgType readConstr showConstr constrFixity constrFieldsdataTypeConstrsmkConstr mkDataType repConstr constrRep constrType dataTypeRep dataTypeName fromConstrM fromConstrB fromConstrgmapMogmapMpgmapMgmapQigmapQgmapQrgmapQlgmapT dataCast2 dataCast1 dataTypeOftoConstrgunfoldgfoldlDataTypeConstrAlgRepIntRepFloatRepCharRepNoRepDataRep AlgConstr IntConstr FloatConstr CharConstr ConstrRepConIndexPrefixInfixFixitygcast2gcast1gcasttypeOf6DefaulttypeOf5DefaulttypeOf4DefaulttypeOf3DefaulttypeOf2DefaulttypeOf1Default typeOfDefault showsTypeRep tyConString typeRepArgs typeRepTyConmkAppTy funResultTy splitTyConAppmkFunTy typeRepKeytypeOf1typeOf2typeOf3typeOf4typeOf5typeOf6typeOf7TypeRepTyContypeOfmkTyCon mkTyConAppcast myMkNoRepType dataTypeTcBunBRunRQunQMunMTunText2QrunQrCONSTunCONSTIDunIDAunA