graphs-0.7: A simple monadic graph library

Copyright(C) 2011 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitytype families
Safe HaskellSafe
LanguageHaskell98

Data.Graph.Class

Description

 

Documentation

class (Monad g, Eq (Vertex g), Eq (Edge g)) => Graph g where Source

Associated Types

type Vertex g :: * Source

type Edge g :: * Source

Methods

vertexMap :: a -> g (VertexMap g a) Source

edgeMap :: a -> g (EdgeMap g a) Source

Instances

Graph Identity Source

The empty graph

Graph g => Graph (MaybeT g) Source 
Graph g => Graph (IdentityT g) Source 
Graph g => Graph (Dual g) Source 
Ord i => Graph (AdjacencyList i) Source 
(Graph g, Monoid m) => Graph (WriterT m g) Source 
(Graph g, Monoid m) => Graph (WriterT m g) Source 
(Graph g, Error e) => Graph (ErrorT e g) Source 
Graph g => Graph (StateT s g) Source 
Graph g => Graph (StateT s g) Source 
Graph g => Graph (ReaderT m g) Source 
Ord i => Graph (AdjacencyMatrix arr i) Source 
(Graph g, Monoid w) => Graph (RWST r w s g) Source 
(Graph g, Monoid w) => Graph (RWST r w s g) Source 

liftVertexMap :: (MonadTrans t, Graph (t g), Graph g, Vertex (t g) ~ Vertex g) => a -> t g (VertexMap (t g) a) Source

liftEdgeMap :: (MonadTrans t, Graph (t g), Graph g, Edge (t g) ~ Edge g) => a -> t g (EdgeMap (t g) a) Source