\RK      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ-non-portable (local universal quantification) experimentalgenerics@haskell.orgjKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~non-portable (uses Data.Data) experimentalgenerics@haskell.org-non-portable (local universal quantification) experimentalgenerics@haskell.org4!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 maybies &#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 '  !"#$%&'()*+,-' !"#$   %()&'*+,-'    !"#$%&'()*+,--non-portable (local universal quantification) experimentalgenerics@haskell.org.6Apply a transformation everywhere in bottom-up manner /5Apply a transformation everywhere in top-down manner 05Variation on everywhere with an extra stop condition 1 Monadic variation on everywhere 22Apply a monadic transformation at least somewhere 35Summarise all nodes in top-down, left-to-right order 41Get a list of all entities that meet a predicate 53Look up a subterm by means of a maybe-typed filter 6)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 7,Compute size of an arbitrary data structure 89Count the number of immediate subterms of the given term 9"Determine depth of the given term :;Determine the number of all suitable nodes in a given term ;2Determine the number of all nodes in a given term <>Determine the number of nodes of a given type in a given term =:Find (unambiguously) an immediate subterm of a given type ./0123456789:;<=./0123456789:;<=./0123456789:;<=(non-portable (uses Data.Generics.Basics) experimentalgenerics@haskell.org> Generic show: an alternative to " deriving Show" ? Generic read: an alternative to " deriving Read" >?>?>?-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 @gfoldl with accumulation AgmapT with accumulation BgmapM with accumulation CgmapQl with accumulation DgmapQr with accumulation EgmapQ with accumulation FTwin map for transformation G%Twin map for monadic transformation HTwin map for queries I$Generic equality: an alternative to " deriving Eq" JAGeneric zip controlled by a function with type-specific branches @ABCDEFGHIJ @ABCDEFGHIJ @ABCDEFGHIJ(non-portable (uses Data.Generics.Basics) experimentalgenerics@haskell.orgKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ              !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTRUVRUWRUXRUYRUZRU[RU\RU]RS^RS_RS`RSaRSbRScRSdRSeRSfRSgRShRSiRSjRSkRSlRSmRSnRSoRSpRSqRSrRSsRStRSuRSvRSwRSxRSyRSzRS{RS|RS}RS~RSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRSRURURURURURURURURURURURURURURURURURURURURURURURURURURURURURURURU syb-0.1.0.2 Data.GenericsData.Generics.AliasesData.Generics.SchemesData.Generics.TextData.Generics.TwinsData.Generics.BasicsData.Generics.Instancesghc-prim GHC.Generics:*::+:UnitInrInl GenericM'GMunGM GenericQ'GQunGQ GenericT'GTunGTGeneric' unGeneric'GenericGenericRGenericBGenericMGenericQGenericTmkTmkQmkMmkMpmkRext0extTextQextMextMpextBextRorElsechoiceMpchoiceQ recoverMprecoverQext1Text1Mext1Qext1R everywhere everywhere' everywhereBut everywhereM somewhere everythinglistify something synthesizegsizeglengthgdepthgcount gnodecount gtypecount gfindtypegshowgread gfoldlAccum gmapAccumT gmapAccumM gmapAccumQl gmapAccumQr gmapAccumQ gzipWithT gzipWithM gzipWithQgeqgzipbase 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 dataTypeTcRunRQunQMunMTunText1QrunQrCONSTunCONSTIDunIDAunA