Copyright | Copyright (C) 2010 Uwe Schmidt |
---|---|
License | MIT |
Maintainer | Uwe Schmidt (uwe\@fh-wedel.de) |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell98 |
Interface definition for navigatable trees. Navigatable trees need to have operations to move up, down, left and right. With these elementary operations, most of the XPath axises can be defined.
- class NavigatableTree t where
- class NavigatableTreeToTree nt t | t -> nt, nt -> t where
- class NavigatableTreeModify nt t | t -> nt, nt -> t where
- addTreeLeft :: t a -> nt a -> Maybe (nt a)
- addTreeRight :: t a -> nt a -> Maybe (nt a)
- dropTreeLeft :: nt a -> Maybe (nt a)
- dropTreeRight :: nt a -> Maybe (nt a)
- substThisTree :: t a -> nt a -> nt a
Documentation
class NavigatableTree t where Source
The interface for navigatable trees
mvUp :: t a -> Maybe (t a) Source
move one step towards the root
mvDown :: t a -> Maybe (t a) Source
descend one step to the leftmost child
mvLeft :: t a -> Maybe (t a) Source
move to the left neighbour
mvRight :: t a -> Maybe (t a) Source
move to the right neighbour
class NavigatableTreeToTree nt t | t -> nt, nt -> t where Source
Conversion between trees and navigatable trees,
There is only a single navigatable tree implementation for a given tree allowed (see the functional dependencies)
class NavigatableTreeModify nt t | t -> nt, nt -> t where Source
Edit operation on navigatable trees
There is only a single navigatable tree implementation for a given tree allowed (see the functional dependencies)
addTreeLeft :: t a -> nt a -> Maybe (nt a) Source
add an ordinary tree in front of the given navigatable tree
addTreeRight :: t a -> nt a -> Maybe (nt a) Source
add an ordinary tree behind of the given navigatable tree
dropTreeLeft :: nt a -> Maybe (nt a) Source
drop the direct left sibling tree of the given navigatable tree
dropTreeRight :: nt a -> Maybe (nt a) Source
drop the direct right sibling tree of the given navigatable tree
substThisTree :: t a -> nt a -> nt a Source
change the tree but remain the navigation