vQ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP-non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-InferredoQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-InferredoQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~non-portable (uses Data.Data) experimentalgenerics@haskell.orgNone -non-portable (local universal quantification) experimentalgenerics@haskell.orgNone-non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-Inferred*"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 )>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 >  !"#$%&'()*+,-.  !"#$%&'()*+,-. !" #$%&'()*+,-,   !"#$%&'()*+,--non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-Inferred.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 4 Variation of  everything with an added stop condition 5JSummarise all nodes in top-down, left-to-right order, carrying some state J down the tree during the computation, but not left-to-right to siblings. 61Get a list of all entities that meet a predicate 73Look up a subterm by means of a maybe-typed filter 8)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 9,Compute size of an arbitrary data structure :9Count the number of immediate subterms of the given term ;"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:;<=>?./0123456789:;<=>? -non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-Inferred./0123456789:;<=>?(non-portable (uses Data.Generics.Basics) experimentalgenerics@haskell.org Safe-Inferred@ Generic show: an alternative to " deriving Show" AGeneric shows B Generic read: an alternative to " deriving Read" @AB@AB@AB@AB -non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-Inferred@AB-non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-Inferred>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 Cgfoldl with accumulation DgmapT with accumulation EApplicative version FgmapM with accumulation GgmapQl with accumulation HgmapQr with accumulation IgmapQ with accumulation JTwin map for transformation K%Twin map for monadic transformation LTwin map for queries M$Generic equality: an alternative to " deriving Eq" NAGeneric zip controlled by a function with type-specific branches CDEFGHIJKLMN CDEFGHIJKLMN CDFGHIEJKLMNCDEFGHIJKLMN -non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-Inferred CDEFGHIJKLMN non-portable  experimental generics@haskell.org  Safe-InferredOGConstruct the empty value for a datatype. For algebraic datatypes, the ! leftmost constructor is chosen. PIReturn a list of values of a datatype. Each value is one of the possible . constructors of the datatype, populated with O values. OPOPOPOP -non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-InferredOP-non-portable (local universal quantification) experimentalgenerics@haskell.org Safe-Inferred.  !"#$%&'()*+,-(non-portable (uses Data.Generics.Basics) experimentalgenerics@haskell.orgNoneQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP-non-portable (local universal quantification) experimentalgenerics@haskell.orgNoneQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcadeadfadgadhadiadjadkadlabmabnaboabpabqabrabsabtabuabvabwabxabyabzab{ab|ab}ab~abababababababababababababababababababababababababababababababababababababababababababababababaaaaaaadadadadadadadadadadadadadadadadadadadadadadadadadadaadadadad syb-0.4.1Data.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 Data.Generics Generics.SYB GenericM'GMunGM GenericQ'GQunGQ GenericT'GTunGTGeneric' unGeneric'GenericGenericRGenericBGenericMGenericQGenericTmkTmkQmkMmkMpmkRext0extTextQextMextMpextBextRorElsechoiceMpchoiceQ recoverMprecoverQext1ext1Text1Mext1Qext1Rext1Bext2Text2Mext2Qext2Rext2B everywhere everywhere' everywhereBut everywhereM somewhere everything everythingButeverythingWithContextlistify something synthesizegsizeglengthgdepthgcount gnodecount gtypecount gfindtypegshowgshowsgread gfoldlAccum gmapAccumT gmapAccumA gmapAccumM gmapAccumQl gmapAccumQr gmapAccumQ gzipWithT gzipWithM gzipWithQgeqgzipemptyconstrsbase Data.DataDataData.Typeable.InternalTypeable 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 ConstrRepConIndexPrefixInfixFixity Data.Typeablegcast2gcast1gcastmkTyCon typeRepKey TypeRepKey showsTypeReptypeOf6DefaulttypeOf5DefaulttypeOf4DefaulttypeOf3DefaulttypeOf2DefaulttypeOf1Default typeOfDefault tyConString typeRepArgs typeRepTyConmkTyCon3mkAppTy funResultTy splitTyConAppmkFunTy tyConName tyConModule tyConPackagetypeOf1typeOf2typeOf3typeOf4typeOf5typeOf6typeOf7cast mkTyConAppTypeRepTyContypeOf myMkNoRepType $fData(->)$fDataIO $fDataIORef$fDataST $fDataSTM $fDataMVar $fDataTVar$fDataThreadId$fDataStablePtr $fDataHandle$fDataDataType $fDataTyCon $fDataTypeRepBRQMText2unBunRunQunMunTQrCONSTIDAunQrunCONSTunIDunA