transformations-0.2.0.0: Generic representation of tree transformations

Safe HaskellNone
LanguageHaskell98

Generics.MultiRec.Transformations.ZipChildren

Documentation

zipChildrenM :: (Monad m, Fam phi, ZipChildren phi (PF phi)) => phi ix -> (forall t. (Lookup phi (Ixs phi) t, Children phi (PF phi) t, GetChildrenTable phi (Ixs phi) t, Eq t) => phi t -> Path phi t ix -> t -> t -> m a) -> ix -> ix -> m [a] Source

class ZipChildren phi f where Source

Methods

zipChildren :: Monad m => phi ix -> (forall t. (Lookup phi (Ixs phi) t, Children phi (PF phi) t, GetChildrenTable phi (Ixs phi) t, Eq t) => phi t -> Path phi t ix -> r t -> r t -> m a) -> (forall t. Dir f t ix -> Path phi t ix) -> f r ix -> f r ix -> m [a] Source

Instances

ZipChildren phi U 
ZipChildren phi (K a) 
(Lookup phi (Ixs phi) xi, El phi xi, Children phi (PF phi) xi, GetChildrenTable phi (Ixs phi) xi, Eq xi) => ZipChildren phi (I xi) 
ZipChildren phi f => ZipChildren phi ((:.:) [] f) 
ZipChildren phi f => ZipChildren phi ((:.:) Maybe f) 
ZipChildren phi f => ZipChildren phi ((:>:) f ix) 
(ZipChildren phi f, Constructor c) => ZipChildren phi (C c f) 
(ZipChildren phi f, ZipChildren phi g, CountIs g) => ZipChildren phi ((:*:) f g) 
(ZipChildren phi f, ZipChildren phi g) => ZipChildren phi ((:+:) f g)