X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=Data%2FGenerics%2FAliases.hs;fp=Data%2FGenerics%2FAliases.hs;h=3c662988e3f20341d0d46be1a01fba6b53bf31bf;hb=fbc83401e9196b75601ab3f6c13e6c83e0b39f31;hp=3c03f56bc5976d3bf2a618aee1eadb3c13c3161c;hpb=c965627e2ab998114be853ce9c1a7c006aca8e12;p=haskell-directory.git diff --git a/Data/Generics/Aliases.hs b/Data/Generics/Aliases.hs index 3c03f56..3c66298 100644 --- a/Data/Generics/Aliases.hs +++ b/Data/Generics/Aliases.hs @@ -336,6 +336,15 @@ gunfoldR c f = gmapM (const f) $ fromConstr c ------------------------------------------------------------------------------ + +-- | Flexible type extension +ext1 :: (Data a, Typeable1 t) + => c a + -> (forall a. Data a => c (t a)) + -> c a +ext1 def ext = maybe def id (cast0to1 ext) + + -- | Type extension of transformations for unary type constructors ext1T :: (Data d, Typeable1 t) => (forall d. Data d => d -> d)