fgl-5.5.1.0: Martin Erwig's Functional Graph Library

Description

Synopsis

# Classes

class Monad m => GraphM m gr where Source

Minimal complete definition

Methods

emptyM :: m (gr a b) Source

isEmptyM :: m (gr a b) -> m Bool Source

matchM :: Node -> m (gr a b) -> m (Decomp gr a b) Source

mkGraphM :: [LNode a] -> [LEdge b] -> m (gr a b) Source

labNodesM :: m (gr a b) -> m [LNode a] Source

matchAnyM :: m (gr a b) -> m (GDecomp gr a b) Source

noNodesM :: m (gr a b) -> m Int Source

nodeRangeM :: m (gr a b) -> m (Node, Node) Source

labEdgesM :: m (gr a b) -> m [LEdge b] Source

Instances

 GraphM IO SGr

# Operations

## Graph Folds and Maps

ufoldM :: GraphM m gr => (Context a b -> c -> c) -> c -> m (gr a b) -> m c Source

graph fold

## Graph Projection

nodesM :: GraphM m gr => m (gr a b) -> m [Node] Source

edgesM :: GraphM m gr => m (gr a b) -> m [Edge] Source

newNodesM :: GraphM m gr => Int -> m (gr a b) -> m [Node] Source

## Graph Construction and Destruction

delNodeM :: GraphM m gr => Node -> m (gr a b) -> m (gr a b) Source

delNodesM :: GraphM m gr => [Node] -> m (gr a b) -> m (gr a b) Source

mkUGraphM :: GraphM m gr => [Node] -> [Edge] -> m (gr () ()) Source

## Graph Inspection

contextM :: GraphM m gr => m (gr a b) -> Node -> m (Context a b) Source

labM :: GraphM m gr => m (gr a b) -> Node -> m (Maybe a) Source