| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Graphs.PureGraph
Description
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.
Synopsis
- 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.
Constructors
| PureGraph | |
Fields
| |
data NodeData nodeInfo arcInfo Source #
Instances
| Show (PartialShow (NodeData nodeInfo arcInfo)) Source # | |
Defined in Graphs.PureGraph | |
| (Eq arcInfo, Eq nodeInfo) => Eq (NodeData nodeInfo arcInfo) Source # | |
| (Ord arcInfo, Ord nodeInfo) => Ord (NodeData nodeInfo arcInfo) Source # | |
Defined in Graphs.PureGraph Methods compare :: NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo -> Ordering # (<) :: NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo -> Bool # (<=) :: NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo -> Bool # (>) :: NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo -> Bool # (>=) :: NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo -> Bool # max :: NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo # min :: NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo # | |
| (Show arcInfo, Show nodeInfo) => Show (NodeData nodeInfo arcInfo) Source # | |
data ArcData nodeInfo arcInfo Source #
Instances
| (Eq arcInfo, Eq nodeInfo) => Eq (ArcData nodeInfo arcInfo) Source # | |
| (Ord arcInfo, Ord nodeInfo) => Ord (ArcData nodeInfo arcInfo) Source # | |
Defined in Graphs.PureGraph Methods compare :: ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo -> Ordering # (<) :: ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo -> Bool # (<=) :: ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo -> Bool # (>) :: ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo -> Bool # (>=) :: ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo -> Bool # max :: ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo # min :: ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo # | |
| (Show arcInfo, Show nodeInfo) => Show (ArcData nodeInfo arcInfo) Source # | |
emptyPureGraph :: Ord nodeInfo => PureGraph nodeInfo arcInfo Source #
addNode :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> [(arcInfo, nodeInfo)] -> PureGraph nodeInfo arcInfo Source #
add a node with given parent arcs from it.
deleteNode :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> PureGraph nodeInfo arcInfo Source #
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 arcInfo2 Source #
parentNodes :: NodeData nodeInfo arcInfo -> [nodeInfo] Source #
toAllNodes :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> [nodeInfo] Source #