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

Portabilitynon-portable
Stabilityexperimental
Maintainergenerics@haskell.org
Safe HaskellNone

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

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