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

Safe HaskellNone
LanguageHaskell98

GraphRewriting.Graph.Types

Synopsis

Documentation

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

Instances

MonadReader (Graph n) (Rewrite n) Source # 

Methods

ask :: Rewrite n (Graph n) #

local :: (Graph n -> Graph n) -> Rewrite n a -> Rewrite n a #

reader :: (Graph n -> a) -> Rewrite n a #

MonadState (Graph n) (Rewrite n) Source # 

Methods

get :: Rewrite n (Graph n) #

put :: Graph n -> Rewrite n () #

state :: (Graph n -> (a, Graph n)) -> Rewrite n a #

data Rewrite n a Source #

Instances

Monad (Rewrite n) Source # 

Methods

(>>=) :: Rewrite n a -> (a -> Rewrite n b) -> Rewrite n b #

(>>) :: Rewrite n a -> Rewrite n b -> Rewrite n b #

return :: a -> Rewrite n a #

fail :: String -> Rewrite n a #

Functor (Rewrite n) Source # 

Methods

fmap :: (a -> b) -> Rewrite n a -> Rewrite n b #

(<$) :: a -> Rewrite n b -> Rewrite n a #

MonadFix (Rewrite n) Source # 

Methods

mfix :: (a -> Rewrite n a) -> Rewrite n a #

Applicative (Rewrite n) Source # 

Methods

pure :: a -> Rewrite n a #

(<*>) :: Rewrite n (a -> b) -> Rewrite n a -> Rewrite n b #

(*>) :: Rewrite n a -> Rewrite n b -> Rewrite n b #

(<*) :: Rewrite n a -> Rewrite n b -> Rewrite n a #

MonadReader (Graph n) (Rewrite n) Source # 

Methods

ask :: Rewrite n (Graph n) #

local :: (Graph n -> Graph n) -> Rewrite n a -> Rewrite n a #

reader :: (Graph n -> a) -> Rewrite n a #

MonadState (Graph n) (Rewrite n) Source # 

Methods

get :: Rewrite n (Graph n) #

put :: Graph n -> Rewrite n () #

state :: (Graph n -> (a, Graph n)) -> Rewrite n a #

data Node Source #

Instances

Eq Node Source # 

Methods

(==) :: Node -> Node -> Bool #

(/=) :: Node -> Node -> Bool #

Ord Node Source # 

Methods

compare :: Node -> Node -> Ordering #

(<) :: Node -> Node -> Bool #

(<=) :: Node -> Node -> Bool #

(>) :: Node -> Node -> Bool #

(>=) :: Node -> Node -> Bool #

max :: Node -> Node -> Node #

min :: Node -> Node -> Node #

Show Node Source # 

Methods

showsPrec :: Int -> Node -> ShowS #

show :: Node -> String #

showList :: [Node] -> ShowS #

data Port Source #

Instances

Eq Port Source # 

Methods

(==) :: Port -> Port -> Bool #

(/=) :: Port -> Port -> Bool #

Ord Port Source # 

Methods

compare :: Port -> Port -> Ordering #

(<) :: Port -> Port -> Bool #

(<=) :: Port -> Port -> Bool #

(>) :: Port -> Port -> Bool #

(>=) :: Port -> Port -> Bool #

max :: Port -> Port -> Port #

min :: Port -> Port -> Port #

Show Edge Source # 

Methods

showsPrec :: Int -> Edge -> ShowS #

show :: Edge -> String #

showList :: [Edge] -> ShowS #

type Edge Source #

Arguments

 = Port

a hyperedge really, connecting a non-empty subset of the graph's nodes (see attachedNodes)