Maintainer | bastiaan.heeren@ou.nl |
---|---|
Stability | provisional |
Portability | portable (depends on ghc) |
Safe Haskell | None |
Language | Haskell98 |
Synopsis
- data Location
- toLocation :: [Int] -> Location
- fromLocation :: Location -> [Int]
- class Navigator a where
- isTop :: Navigator a => a -> Bool
- isLeaf :: Navigator a => a -> Bool
- hasLeft :: Navigator a => a -> Bool
- hasRight :: Navigator a => a -> Bool
- hasUp :: Navigator a => a -> Bool
- hasDown :: Navigator a => a -> Bool
- top :: Navigator a => a -> a
- leftMost :: Navigator a => a -> a
- rightMost :: Navigator a => a -> a
- leftMostLeaf :: Navigator a => a -> a
- rightMostLeaf :: Navigator a => a -> a
- depth :: Navigator a => a -> Int
- level :: Navigator a => a -> Int
- levelNext :: Navigator a => a -> Maybe a
- levelPrevious :: Navigator a => a -> Maybe a
- leftMostAt :: Navigator a => Int -> a -> Maybe a
- rightMostAt :: Navigator a => Int -> a -> Maybe a
- downs :: Navigator a => a -> [a]
- downTo :: Navigator a => Int -> a -> Maybe a
- arity :: Navigator a => a -> Int
- navigateTo :: Navigator a => Location -> a -> Maybe a
- navigateTowards :: Navigator a => Location -> a -> a
- data PreOrder a
- makePreOrder :: a -> PreOrder a
- data PostOrder a
- makePostOrder :: a -> PostOrder a
- data LevelOrder a
- makeLevelOrder :: a -> LevelOrder a
- data Horizontal a
- makeHorizontal :: a -> Horizontal a
- data Leafs a
- makeLeafs :: Navigator a => a -> Leafs a
- data UniplateNavigator a
Location information
toLocation :: [Int] -> Location Source #
fromLocation :: Location -> [Int] Source #
Navigator type class
class Navigator a where Source #
For a minimal complete definition, provide an implemention for downs or allDowns. All other functions need an implementation as well, except for change. Note that a constructor (a -> f a) is not included in the type class to allow additional type class constraints on type a.
leftMostLeaf :: Navigator a => a -> a Source #
rightMostLeaf :: Navigator a => a -> a Source #
levelPrevious :: Navigator a => a -> Maybe a Source #
navigateTowards :: Navigator a => Location -> a -> a Source #
Tree walks
makePreOrder :: a -> PreOrder a Source #
makePostOrder :: a -> PostOrder a Source #
data LevelOrder a Source #
Instances
Wrapper LevelOrder Source # | |
Defined in Ideas.Common.Traversal.Navigator wrap :: a -> LevelOrder a Source # unwrap :: LevelOrder a -> a Source # | |
Update LevelOrder Source # | |
Defined in Ideas.Common.Traversal.Navigator update :: LevelOrder a -> (a, a -> LevelOrder a) Source # | |
Eq a => Eq (LevelOrder a) Source # | |
Defined in Ideas.Common.Traversal.Navigator (==) :: LevelOrder a -> LevelOrder a -> Bool # (/=) :: LevelOrder a -> LevelOrder a -> Bool # | |
Show a => Show (LevelOrder a) Source # | |
Defined in Ideas.Common.Traversal.Navigator showsPrec :: Int -> LevelOrder a -> ShowS # show :: LevelOrder a -> String # showList :: [LevelOrder a] -> ShowS # | |
Navigator a => Iterator (LevelOrder a) Source # | |
Defined in Ideas.Common.Traversal.Navigator next :: LevelOrder a -> Maybe (LevelOrder a) Source # previous :: LevelOrder a -> Maybe (LevelOrder a) Source # first :: LevelOrder a -> LevelOrder a Source # final :: LevelOrder a -> LevelOrder a Source # position :: LevelOrder a -> Int Source # |
makeLevelOrder :: a -> LevelOrder a Source #
data Horizontal a Source #
Instances
Wrapper Horizontal Source # | |
Defined in Ideas.Common.Traversal.Navigator wrap :: a -> Horizontal a Source # unwrap :: Horizontal a -> a Source # | |
Update Horizontal Source # | |
Defined in Ideas.Common.Traversal.Navigator update :: Horizontal a -> (a, a -> Horizontal a) Source # | |
Eq a => Eq (Horizontal a) Source # | |
Defined in Ideas.Common.Traversal.Navigator (==) :: Horizontal a -> Horizontal a -> Bool # (/=) :: Horizontal a -> Horizontal a -> Bool # | |
Show a => Show (Horizontal a) Source # | |
Defined in Ideas.Common.Traversal.Navigator showsPrec :: Int -> Horizontal a -> ShowS # show :: Horizontal a -> String # showList :: [Horizontal a] -> ShowS # | |
Navigator a => Iterator (Horizontal a) Source # | |
Defined in Ideas.Common.Traversal.Navigator next :: Horizontal a -> Maybe (Horizontal a) Source # previous :: Horizontal a -> Maybe (Horizontal a) Source # first :: Horizontal a -> Horizontal a Source # final :: Horizontal a -> Horizontal a Source # position :: Horizontal a -> Int Source # |
makeHorizontal :: a -> Horizontal a Source #
Uniplate navigator
data UniplateNavigator a Source #