uni-graphs-2.2.1.1: Graphs

Safe HaskellNone
LanguageHaskell98

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

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

Instances
Show (PartialShow (PureGraph nodeInfo arcInfo)) Source # 
Instance details

Defined in Graphs.PureGraph

Methods

showsPrec :: Int -> PartialShow (PureGraph nodeInfo arcInfo) -> ShowS #

show :: PartialShow (PureGraph nodeInfo arcInfo) -> String #

showList :: [PartialShow (PureGraph nodeInfo arcInfo)] -> ShowS #

(Show nodeInfo, Show arcInfo) => Show (PureGraph nodeInfo arcInfo) Source # 
Instance details

Defined in Graphs.PureGraph

Methods

showsPrec :: Int -> PureGraph nodeInfo arcInfo -> ShowS #

show :: PureGraph nodeInfo arcInfo -> String #

showList :: [PureGraph nodeInfo arcInfo] -> ShowS #

data NodeData nodeInfo arcInfo Source #

Constructors

NodeData 

Fields

Instances
Show (PartialShow (NodeData nodeInfo arcInfo)) Source # 
Instance details

Defined in Graphs.PureGraph

Methods

showsPrec :: Int -> PartialShow (NodeData nodeInfo arcInfo) -> ShowS #

show :: PartialShow (NodeData nodeInfo arcInfo) -> String #

showList :: [PartialShow (NodeData nodeInfo arcInfo)] -> ShowS #

(Eq arcInfo, Eq nodeInfo) => Eq (NodeData nodeInfo arcInfo) Source # 
Instance details

Defined in Graphs.PureGraph

Methods

(==) :: NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo -> Bool #

(/=) :: NodeData nodeInfo arcInfo -> NodeData nodeInfo arcInfo -> Bool #

(Ord arcInfo, Ord nodeInfo) => Ord (NodeData nodeInfo arcInfo) Source # 
Instance details

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 # 
Instance details

Defined in Graphs.PureGraph

Methods

showsPrec :: Int -> NodeData nodeInfo arcInfo -> ShowS #

show :: NodeData nodeInfo arcInfo -> String #

showList :: [NodeData nodeInfo arcInfo] -> ShowS #

data ArcData nodeInfo arcInfo Source #

Constructors

ArcData 

Fields

Instances
(Eq arcInfo, Eq nodeInfo) => Eq (ArcData nodeInfo arcInfo) Source # 
Instance details

Defined in Graphs.PureGraph

Methods

(==) :: ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo -> Bool #

(/=) :: ArcData nodeInfo arcInfo -> ArcData nodeInfo arcInfo -> Bool #

(Ord arcInfo, Ord nodeInfo) => Ord (ArcData nodeInfo arcInfo) Source # 
Instance details

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 # 
Instance details

Defined in Graphs.PureGraph

Methods

showsPrec :: Int -> ArcData nodeInfo arcInfo -> ShowS #

show :: ArcData nodeInfo arcInfo -> String #

showList :: [ArcData nodeInfo arcInfo] -> ShowS #

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 #

toNodeParents :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> Maybe [nodeInfo] Source #

nodeExists :: Ord nodeInfo => PureGraph nodeInfo arcInfo -> nodeInfo -> Bool Source #