generic-deriving-1.6.3: Generic programming library for generalised deriving.

Copyright2011-2012 Universiteit Utrecht, University of Oxford
LicenseBSD3
Maintainergenerics@haskell.org
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell98

Generics.Deriving.Uniplate

Contents

Description

Summary: Functions inspired by the Uniplate generic programming library, mostly implemented by Sean Leather.

Synopsis

Documentation

class Uniplate a where

Minimal complete definition

Nothing

Methods

children :: a -> [a]

context :: a -> [a] -> a

descend :: (a -> a) -> a -> a

descendM :: Monad m => (a -> m a) -> a -> m a

transform :: (a -> a) -> a -> a

transformM :: Monad m => (a -> m a) -> a -> m a

Instances

Uniplate Bool 
Uniplate Char 
Uniplate Double 
Uniplate Float 
Uniplate Int 
Uniplate () 
Uniplate [a] 
Uniplate (Maybe a) 
Uniplate (Either a b) 
Uniplate (b, c) 
Uniplate (b, c, d) 
Uniplate (b, c, d, e) 
Uniplate (b, c, d, e, f) 
Uniplate (b, c, d, e, f, g) 
Uniplate (b, c, d, e, f, g, h) 

Derived functions

uniplate :: Uniplate a => a -> ([a], [a] -> a)

universe :: Uniplate a => a -> [a]

rewrite :: Uniplate a => (a -> Maybe a) -> a -> a

rewriteM :: (Monad m, Uniplate a) => (a -> m (Maybe a)) -> a -> m a

contexts :: Uniplate a => a -> [(a, a -> a)]

holes :: Uniplate a => a -> [(a, a -> a)]

para :: Uniplate a => (a -> [r] -> r) -> a -> r

Default definitions

childrendefault :: (Generic a, Uniplate' (Rep a) a) => a -> [a]

contextdefault :: (Generic a, Context' (Rep a) a) => a -> [a] -> a

descenddefault :: (Generic a, Uniplate' (Rep a) a) => (a -> a) -> a -> a

descendMdefault :: (Generic a, Uniplate' (Rep a) a, Monad m) => (a -> m a) -> a -> m a

transformdefault :: (Generic a, Uniplate' (Rep a) a) => (a -> a) -> a -> a

transformMdefault :: (Generic a, Uniplate' (Rep a) a, Monad m) => (a -> m a) -> a -> m a