Portability | portable (depends on ghc) |
---|---|

Stability | provisional |

Maintainer | bastiaan.heeren@ou.nl |

Safe Haskell | Safe-Inferred |

- class Update f where
- update :: f a -> (a, a -> f a)

- current :: Update f => f a -> a
- change :: Update f => (a -> a) -> f a -> f a
- replace :: Update f => a -> f a -> f a
- changeM :: Update f => (a -> Maybe a) -> f a -> Maybe (f a)
- changeG :: (Update f, Monad g) => (a -> g a) -> f a -> g (f a)
- class Focus a where
- liftFocus :: Focus a => (Unfocus a -> Maybe (Unfocus a)) -> a -> Maybe a
- unliftFocus :: Focus a => (a -> Maybe a) -> Unfocus a -> Maybe (Unfocus a)
- class Wrapper f where
- liftWrapper :: (Monad m, Wrapper f) => (a -> m a) -> f a -> m (f a)
- unliftWrapper :: (Monad m, Wrapper f) => (f a -> m (f a)) -> a -> m a
- mapWrapper :: Wrapper f => (a -> a) -> f a -> f a
- data Mirror a
- makeMirror :: a -> Mirror a
- (>|<) :: (a -> Maybe a) -> (a -> Maybe a) -> a -> Maybe a
- safe :: (a -> Maybe a) -> a -> a
- fixp :: (a -> Maybe a) -> a -> a
- fixpl :: (a -> Maybe a) -> a -> [a]
- mplus :: MonadPlus m => forall a. m a -> m a -> m a
- (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c

# Update type class

# Focus type class

Focus (ListIterator a) | |

Uniplate a => Focus (UniplateNavigator a) |

# Wrapper type class

liftWrapper :: (Monad m, Wrapper f) => (a -> m a) -> f a -> m (f a)Source

unliftWrapper :: (Monad m, Wrapper f) => (f a -> m (f a)) -> a -> m aSource

mapWrapper :: Wrapper f => (a -> a) -> f a -> f aSource

# Mirror

makeMirror :: a -> Mirror aSource