Copyright | Copyright (C) 2010 Uwe Schmidt |
---|---|
License | MIT |
Maintainer | Uwe Schmidt (uwe\@fh-wedel.de) |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
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
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