graphs-0.7.3: A simple monadic graph library
Copyright(C) 2011 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <[email protected]>
Stabilityexperimental
Portabilitytype families
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Graph.Class

Description

 

Documentation

class (Monad g, Eq (Vertex g), Eq (Edge g)) => Graph (g :: Type -> Type) where Source #

Associated Types

type Vertex (g :: Type -> Type) Source #

type Edge (g :: Type -> Type) Source #

Methods

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

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

Instances

Instances details
Graph Identity Source #

The empty graph

Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex Identity 
Instance details

Defined in Data.Graph.Class

type Edge Identity 
Instance details

Defined in Data.Graph.Class

Ord i => Graph (AdjacencyList i) Source # 
Instance details

Defined in Data.Graph.AdjacencyList

Associated Types

type Vertex (AdjacencyList i) 
Instance details

Defined in Data.Graph.AdjacencyList

type Vertex (AdjacencyList i) = i
type Edge (AdjacencyList i) 
Instance details

Defined in Data.Graph.AdjacencyList

type Edge (AdjacencyList i) = (i, i)
Graph g => Graph (Dual g) Source # 
Instance details

Defined in Data.Graph.Dual

Associated Types

type Vertex (Dual g) 
Instance details

Defined in Data.Graph.Dual

type Vertex (Dual g) = Vertex g
type Edge (Dual g) 
Instance details

Defined in Data.Graph.Dual

type Edge (Dual g) = Edge g

Methods

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

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

Graph g => Graph (MaybeT g) Source # 
Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex (MaybeT g) 
Instance details

Defined in Data.Graph.Class

type Vertex (MaybeT g) = Vertex g
type Edge (MaybeT g) 
Instance details

Defined in Data.Graph.Class

type Edge (MaybeT g) = Edge g

Methods

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

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

Ord i => Graph (AdjacencyMatrix arr i) Source # 
Instance details

Defined in Data.Graph.AdjacencyMatrix

Associated Types

type Vertex (AdjacencyMatrix arr i) 
Instance details

Defined in Data.Graph.AdjacencyMatrix

type Vertex (AdjacencyMatrix arr i) = i
type Edge (AdjacencyMatrix arr i) 
Instance details

Defined in Data.Graph.AdjacencyMatrix

type Edge (AdjacencyMatrix arr i) = (i, i)
Graph g => Graph (IdentityT g) Source # 
Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex (IdentityT g) 
Instance details

Defined in Data.Graph.Class

type Vertex (IdentityT g) = Vertex g
type Edge (IdentityT g) 
Instance details

Defined in Data.Graph.Class

type Edge (IdentityT g) = Edge g
Graph g => Graph (ReaderT m g) Source # 
Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex (ReaderT m g) 
Instance details

Defined in Data.Graph.Class

type Vertex (ReaderT m g) = Vertex g
type Edge (ReaderT m g) 
Instance details

Defined in Data.Graph.Class

type Edge (ReaderT m g) = Edge g

Methods

vertexMap :: a -> ReaderT m g (VertexMap (ReaderT m g) a) Source #

edgeMap :: a -> ReaderT m g (EdgeMap (ReaderT m g) a) Source #

Graph g => Graph (StateT s g) Source # 
Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex (StateT s g) 
Instance details

Defined in Data.Graph.Class

type Vertex (StateT s g) = Vertex g
type Edge (StateT s g) 
Instance details

Defined in Data.Graph.Class

type Edge (StateT s g) = Edge g

Methods

vertexMap :: a -> StateT s g (VertexMap (StateT s g) a) Source #

edgeMap :: a -> StateT s g (EdgeMap (StateT s g) a) Source #

Graph g => Graph (StateT s g) Source # 
Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex (StateT s g) 
Instance details

Defined in Data.Graph.Class

type Vertex (StateT s g) = Vertex g
type Edge (StateT s g) 
Instance details

Defined in Data.Graph.Class

type Edge (StateT s g) = Edge g

Methods

vertexMap :: a -> StateT s g (VertexMap (StateT s g) a) Source #

edgeMap :: a -> StateT s g (EdgeMap (StateT s g) a) Source #

(Graph g, Monoid m) => Graph (WriterT m g) Source # 
Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex (WriterT m g) 
Instance details

Defined in Data.Graph.Class

type Vertex (WriterT m g) = Vertex g
type Edge (WriterT m g) 
Instance details

Defined in Data.Graph.Class

type Edge (WriterT m g) = Edge g

Methods

vertexMap :: a -> WriterT m g (VertexMap (WriterT m g) a) Source #

edgeMap :: a -> WriterT m g (EdgeMap (WriterT m g) a) Source #

(Graph g, Monoid m) => Graph (WriterT m g) Source # 
Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex (WriterT m g) 
Instance details

Defined in Data.Graph.Class

type Vertex (WriterT m g) = Vertex g
type Edge (WriterT m g) 
Instance details

Defined in Data.Graph.Class

type Edge (WriterT m g) = Edge g

Methods

vertexMap :: a -> WriterT m g (VertexMap (WriterT m g) a) Source #

edgeMap :: a -> WriterT m g (EdgeMap (WriterT m g) a) Source #

(Graph g, Monoid w) => Graph (RWST r w s g) Source # 
Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex (RWST r w s g) 
Instance details

Defined in Data.Graph.Class

type Vertex (RWST r w s g) = Vertex g
type Edge (RWST r w s g) 
Instance details

Defined in Data.Graph.Class

type Edge (RWST r w s g) = Edge g

Methods

vertexMap :: a -> RWST r w s g (VertexMap (RWST r w s g) a) Source #

edgeMap :: a -> RWST r w s g (EdgeMap (RWST r w s g) a) Source #

(Graph g, Monoid w) => Graph (RWST r w s g) Source # 
Instance details

Defined in Data.Graph.Class

Associated Types

type Vertex (RWST r w s g) 
Instance details

Defined in Data.Graph.Class

type Vertex (RWST r w s g) = Vertex g
type Edge (RWST r w s g) 
Instance details

Defined in Data.Graph.Class

type Edge (RWST r w s g) = Edge g

Methods

vertexMap :: a -> RWST r w s g (VertexMap (RWST r w s g) a) Source #

edgeMap :: a -> RWST r w s g (EdgeMap (RWST r w s g) a) Source #

type VertexMap (g :: Type -> Type) = PropertyMap g (Vertex g) Source #

type EdgeMap (g :: Type -> Type) = PropertyMap g (Edge g) Source #

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

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