This module implements a simple "pure" graph interface, destined to be used for the complex graph operations required by VersionDag.
We instance Show
for debugging purposes.
- newtype PureGraph nodeInfo arcInfo = PureGraph {
- nodeDataFM :: Map nodeInfo (NodeData nodeInfo arcInfo)
- data NodeData nodeInfo arcInfo = NodeData {}
- data ArcData nodeInfo arcInfo = ArcData {}
- emptyPureGraph :: Ord nodeInfo => PureGraph nodeInfo arcInfo
- addNode :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> [(arcInfo, nodeInfo)] -> PureGraph nodeInfo arcInfo
- deleteNode :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> PureGraph nodeInfo arcInfo
- mapArcInfo :: (arcInfo1 -> arcInfo2) -> PureGraph nodeInfo arcInfo1 -> PureGraph nodeInfo arcInfo2
- parentNodes :: NodeData nodeInfo arcInfo -> [nodeInfo]
- toAllNodes :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> [nodeInfo]
- toNodeParents :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> Maybe [nodeInfo]
- nodeExists :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> Bool
Documentation
newtype PureGraph nodeInfo arcInfo Source
node given with their parent nodes. The parents should always come before their children in the list.
PureGraph | |
|
emptyPureGraph :: Ord nodeInfo => PureGraph nodeInfo arcInfoSource
addNode :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> [(arcInfo, nodeInfo)] -> PureGraph nodeInfo arcInfoSource
add a node with given parent arcs from it.
deleteNode :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> PureGraph nodeInfo arcInfoSource
NB. The graph will end up ill-formed if you delete a node which has parent arcs pointing to it.
mapArcInfo :: (arcInfo1 -> arcInfo2) -> PureGraph nodeInfo arcInfo1 -> PureGraph nodeInfo arcInfo2Source
parentNodes :: NodeData nodeInfo arcInfo -> [nodeInfo]Source
toAllNodes :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> [nodeInfo]Source
toNodeParents :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> Maybe [nodeInfo]Source
nodeExists :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> BoolSource