graph-rewriting-0.7.0: Monadic graph rewriting of hypergraphs with ports and multiedges

Safe HaskellNone



Most of the functions for graph scrutinisation (Read) and modification (Write) are defined monadically. This module defines functions for extracting these monadic values and a few non-monadic graph scrutinisation/modification functions.



nodes :: Graph n -> [n]Source

edges :: Graph n -> [(Edge, [n])]Source

Each edge corresponds to the set of nodes it connects

unsafeMapNodes :: (n -> n') -> Graph n -> Graph n'Source

unsafe, since no checks are performed to ensure that the invariants from GraphRewriting.Graph.Write are preserved

unsafeMapNodesUnique :: (Int -> n -> n') -> Graph n -> Graph n'Source

map that supplies an additional unique key to the mapping function; unsafe in the same way as unsafeMapNodes

runGraph :: Rewrite n a -> Graph n -> (a, Graph n)Source

apply a monadic graph modification to a graph

evalGraph :: Rewrite n a -> Graph n -> aSource

data Graph n Source

Hypergraph that holds nodes of type n. Nodes can be referenced by type Node, edges by type Edge, see GraphRewriting.Graph.Read and GraphRewriting.Graph.Write