úÎ!”µ‰¯^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\].(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) SafeQV0 *^syb!The type constructor for builders_syb The type constructor for readers`syb The type constructor for queriesasyb(The type constructor for transformationsbsyb(The type constructor for transformationssyb&Other first-class polymorphic wrappers sybVWrapped generic functions; recall: [Generic c] would be legal but [Generic' c] not. syb}The general scheme underlying generic functions assumed by gfoldl; there are isomorphisms such as GenericT = Generic T. syb\Generic readers, say monadic builders, i.e., produce an "a" with the help of a monad "m".syb)Generic builders i.e., produce an "a".sybHGeneric monadic transformations, i.e., take an "a" and compute an "a"sybDGeneric queries of type "r", i.e., take any "a" and return an "r"syb?Generic transformations, i.e., take an "a" and return an "a"sybaMake a generic transformation; start from a type-specific case; preserve the term otherwisesybXMake a generic query; start from a type-specific case; return a constant otherwisesybhMake a generic monadic transformation; start from a type-specific case; resort to return otherwisesybwMake a generic monadic transformation for MonadPlus; use "const mzero" (i.e., failure) instead of return as default.sybhMake a generic builder; start from a type-specific ase; resort to no build (i.e., mzero) otherwisesybFlexible type extensionsyb7Extend a generic transformation by a type-specific casesyb.Extend a generic query by a type-specific casesyb?Extend a generic monadic transformation by a type-specific casesybAExtend a generic MonadPlus transformation by a type-specific casesybExtend a generic buildersybExtend a generic readersybLeft-biased choice on maybessyb"Choice for monadic transformations sybChoice for monadic queries!syb>Recover from the failure of monadic transformation by identity"syb7Recover from the failure of monadic query by a constant#sybFlexible type extension$syb=Type extension of transformations for unary type constructors%syb?Type extension of monadic transformations for type constructors&syb/Type extension of queries for type constructors'syb/Type extension of readers for type constructors(syb0Type extension of builders for type constructorscsybFlexible type extension)syb=Type extension of transformations for unary type constructors*syb?Type extension of monadic transformations for type constructors+syb/Type extension of queries for type constructors,syb/Type extension of readers for type constructors-syb0Type extension of builders for type constructors.  !"#$%&'()*+,-. !" #$%&'()*+,-.(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) Safe44adefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄ(c) 2008 Universiteit Utrecht  BSD-style generics@haskell.org  experimental  non-portable Safe<V;4.sybgConstruct the empty value for a datatype. For algebraic datatypes, the leftmost constructor is chosen./sybwReturn a list of values of a datatype. Each value is one of the possible constructors of the datatype, populated with . values.././.(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental non-portable (uses Data.Data) None01=Ó.(c) The University of Glasgow, CWI 2001--2003 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) SafeQVTª<syb5Apply a transformation everywhere in bottom-up manner=syb4Apply a transformation everywhere in top-down manner>syb4Variation on everywhere with an extra stop condition?sybMonadic variation on everywhere@syb1Apply a monadic transformation at least somewhereAsyb4Summarise all nodes in top-down, left-to-right orderBsyb6Variation of "everything" with an added stop conditionCsyb“Summarise all nodes in top-down, left-to-right order, carrying some state down the tree during the computation, but not left-to-right to siblings.Dsyb0Get a list of all entities that meet a predicateEsyb2Look up a subterm by means of a maybe-typed filterFsybì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; 3rd argument f updates the synthesised data according to the given termGsyb+Compute size of an arbitrary data structureHsyb8Count the number of immediate subterms of the given termIsyb!Determine depth of the given termJsyb:Determine the number of all suitable nodes in a given termKsyb1Determine the number of all nodes in a given termLsyb=Determine the number of nodes of a given type in a given termMsyb9Find (unambiguously) an immediate subterm of a given type<=>?@ABCDEFGHIJKLM<=>?@ABCDEFGHIJKLM.(c) The University of Glasgow, CWI 2001--2003 !BSD-style (see the LICENSE file) generics@haskell.org  experimental )non-portable (uses Data.Generics.Basics) SafeYÓNsyb/Generic show: an alternative to "deriving Show"Osyb Generic showsPsyb/Generic read: an alternative to "deriving Read"NOPNOP.(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) SafeQVh@Åsyb=The type constructor needed for the definition of gmapAccumQrÆsybFThe constant type constructor needed for the definition of gmapAccumQlÇsybEThe identity type constructor needed for the definition of gmapAccumTÈsyb#A type constructor for accumulationQsybgfoldl with accumulationRsybgmapT with accumulationSsybApplicative versionTsybgmapM with accumulationUsybgmapQl with accumulationVsybgmapQr with accumulationWsybgmapQ with accumulationXsybTwin map for transformationYsyb#Twin map for monadic transformationZsybTwin map for queries[syb1Generic equality: an alternative to "deriving Eq"\syb@Generic zip controlled by a function with type-specific branches]syb4Generic comparison: an alternative to "deriving Ord" QRSTUVWXYZ[\] QRTUVWSXYZ[\].(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental )non-portable (uses Data.Generics.Basics) NonekS³defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄ  !"#$%&'()*+,-./<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] .(c) The University of Glasgow, CWI 2001--2004 0BSD-style (see the file libraries/base/LICENSE) generics@haskell.org  experimental .non-portable (local universal quantification) Noneq³defghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄ  !"#$%&'()*+,-./<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] .(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) Safev•.  !"#$%&'()*+,- .(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) Safezadefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄ .(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) Safe~?./ .(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) None€þ.(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) Safeƒµ<=>?@ABCDEFGHIJKLM.(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) Safe†´NOP.(c) The University of Glasgow, CWI 2001--2004 !BSD-style (see the LICENSE file) generics@haskell.org  experimental .non-portable (local universal quantification) Safe‰w QRSTUVWXYZ[\]É !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvtuwtuxtuytuztu{tu|tu}tu~tutu€tutu‚tuƒtu„t…†‡ˆ‰tuŠtu‹tuŒtutuŽtututu‘tu’tu“tu”tu•tu–tu—tu˜tu™tuštu›tuœtutužtuŸtu tu¡tu¢tu£tu¤tu¥tu¦tu§tu¨tu©tuªtu«tu¬tu­tu®tu¯tu°tu±tu²tu³tu´tuµtu¶tu·t¸¹t¸ºt¸»t¸¼t¸½t¸¾t¸¿t¸Àt¸Át¸Ât¸Ãt¸Ät¸Åt¸Æt¸Çt¸Èt¸Ét¸Êt¸Ët¸Ìt¸Ít¸Ît¸Ït…Ðt…Ñt…Òt…Ót…ÔtÕÖtÕÖtרt×Ùt×Út×ÛÜÝÞßàsyb-0.7-2jW43lwzJV5e7EQvU8PxVData.Generics.AliasesData.Generics.BuildersData.Generics.InstancesData.Generics.SchemesData.Generics.TextData.Generics.TwinsData.Generics.Basics Data.Generics Generics.SYBGenerics.SYB.AliasesGenerics.SYB.BasicsGenerics.SYB.BuildersGenerics.SYB.InstancesGenerics.SYB.SchemesGenerics.SYB.TextGenerics.SYB.Twins GenericM'GMunGM GenericQ'GQunGQ GenericT'GTunGTGeneric' unGeneric'GenericGenericRGenericBGenericMGenericQGenericTmkTmkQmkMmkMpmkRext0extTextQextMextMpextBextRorElsechoiceMpchoiceQ recoverMprecoverQext1ext1Text1Mext1Qext1Rext1Bext2Text2Mext2Qext2Rext2Bemptyconstrs $fData(->)$fDataIO $fDataIORef$fDataST $fDataSTM $fDataMVar $fDataTVar$fDataThreadId$fDataStablePtr $fDataHandle$fDataDataType $fDataTyCon everywhere everywhere' everywhereBut everywhereM somewhere everything everythingButeverythingWithContextlistify something synthesizegsizeglengthgdepthgcount gnodecount gtypecount gfindtypegshowgshowsgread gfoldlAccum gmapAccumT gmapAccumA gmapAccumM gmapAccumQl gmapAccumQr gmapAccumQ gzipWithT gzipWithM gzipWithQgeqgzipgcompareBRQMText2base Data.DataDatagfoldlgunfoldtoConstr dataTypeOf dataCast1 dataCast2gmapTgmapQlgmapQrgmapQgmapQigmapMgmapMpgmapMoData.Typeable.InternalTypeableghc-prim GHC.TypesTyCon tyconModule tyconUQname isNorepType mkNoRepType mkCharConstr mkRealConstrmkIntegralConstr mkCharType mkFloatType mkIntTypemaxConstrIndex constrIndex indexConstr isAlgType readConstr showConstr constrFixity constrFieldsdataTypeConstrsmkConstr mkDataType repConstr constrRep constrType dataTypeRep dataTypeName fromConstrM fromConstrB fromConstrDataTypeConstrDataRepIntRepFloatRepAlgRepCharRepNoRep ConstrRep AlgConstr IntConstr FloatConstr CharConstrConIndexFixityPrefixInfix Data.TypeabletypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1 rnfTypeReptypeRepFingerprint typeRepTyCon typeRepArgs splitTyConAppmkFunTy funResultTygcast2gcast1gcasteqTcast showsTypeReptypeReptypeOfTypeReprnfTyContyConFingerprint tyConName tyConModule tyConPackage Data.ProxyProxyData.Type.Equality:~:Refl:~~:HReflQrCONSTIDA