Maintainer | bastiaan.heeren@ou.nl |
---|---|
Stability | provisional |
Portability | portable (depends on ghc) |
Safe Haskell | Safe |
Language | Haskell98 |
Synopsis
- class Update f where
- 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
- type Unfocus a
- 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 => m a -> m a -> m a
- (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
Update type class
Instances
Update ListIterator Source # | |
Defined in Ideas.Common.Traversal.Iterator update :: ListIterator a -> (a, a -> ListIterator a) Source # | |
Update UniplateNavigator Source # | |
Defined in Ideas.Common.Traversal.Navigator update :: UniplateNavigator a -> (a, a -> UniplateNavigator a) Source # | |
Update Leafs Source # | |
Update Horizontal Source # | |
Defined in Ideas.Common.Traversal.Navigator update :: Horizontal a -> (a, a -> Horizontal a) Source # | |
Update LevelOrder Source # | |
Defined in Ideas.Common.Traversal.Navigator update :: LevelOrder a -> (a, a -> LevelOrder a) Source # | |
Update PostOrder Source # | |
Update PreOrder Source # | |
Focus type class
Instances
Focus (ListIterator a) Source # | |
Defined in Ideas.Common.Traversal.Iterator type Unfocus (ListIterator a) :: * Source # focus :: Unfocus (ListIterator a) -> ListIterator a Source # focusM :: Unfocus (ListIterator a) -> Maybe (ListIterator a) Source # unfocus :: ListIterator a -> Unfocus (ListIterator a) Source # | |
Uniplate a => Focus (UniplateNavigator a) Source # | |
Defined in Ideas.Common.Traversal.Navigator type Unfocus (UniplateNavigator a) :: * Source # focus :: Unfocus (UniplateNavigator a) -> UniplateNavigator a Source # focusM :: Unfocus (UniplateNavigator a) -> Maybe (UniplateNavigator a) Source # unfocus :: UniplateNavigator a -> Unfocus (UniplateNavigator a) Source # |
Wrapper type class
class Wrapper f where Source #
Instances
Wrapper Mirror Source # | |
Wrapper Leafs Source # | |
Wrapper Horizontal Source # | |
Defined in Ideas.Common.Traversal.Navigator wrap :: a -> Horizontal a Source # unwrap :: Horizontal a -> a Source # | |
Wrapper LevelOrder Source # | |
Defined in Ideas.Common.Traversal.Navigator wrap :: a -> LevelOrder a Source # unwrap :: LevelOrder a -> a Source # | |
Wrapper PostOrder Source # | |
Wrapper PreOrder Source # | |
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 a Source #
mapWrapper :: Wrapper f => (a -> a) -> f a -> f a Source #
Mirror
makeMirror :: a -> Mirror a Source #