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.AdjacencyList

Description

 

Synopsis

Documentation

class Graph g => AdjacencyListGraph g where #

Minimal definition: source, target, and either adjacentVertices with outEdges = defaultOutEdges or outEdges

Minimal complete definition

source, target, outEdges

Methods

source :: Edge g -> g (Vertex g) #

target :: Edge g -> g (Vertex g) #

outEdges :: Vertex g -> g [Edge g] #

outDegree :: Vertex g -> g Int #

adjacentVertices :: Vertex g -> g [Vertex g] #

Instances

AdjacencyListGraph Identity # 
AdjacencyListGraph g => AdjacencyListGraph (MaybeT g) # 
BidirectionalGraph g => AdjacencyListGraph (Dual g) # 

Methods

source :: Edge (Dual g) -> Dual g (Vertex (Dual g)) #

target :: Edge (Dual g) -> Dual g (Vertex (Dual g)) #

outEdges :: Vertex (Dual g) -> Dual g [Edge (Dual g)] #

outDegree :: Vertex (Dual g) -> Dual g Int #

adjacentVertices :: Vertex (Dual g) -> Dual g [Vertex (Dual g)] #

Ix i => AdjacencyListGraph (AdjacencyList i) # 
(AdjacencyListGraph g, Monoid m) => AdjacencyListGraph (WriterT m g) # 

Methods

source :: Edge (WriterT m g) -> WriterT m g (Vertex (WriterT m g)) #

target :: Edge (WriterT m g) -> WriterT m g (Vertex (WriterT m g)) #

outEdges :: Vertex (WriterT m g) -> WriterT m g [Edge (WriterT m g)] #

outDegree :: Vertex (WriterT m g) -> WriterT m g Int #

adjacentVertices :: Vertex (WriterT m g) -> WriterT m g [Vertex (WriterT m g)] #

(AdjacencyListGraph g, Monoid m) => AdjacencyListGraph (WriterT m g) # 

Methods

source :: Edge (WriterT m g) -> WriterT m g (Vertex (WriterT m g)) #

target :: Edge (WriterT m g) -> WriterT m g (Vertex (WriterT m g)) #

outEdges :: Vertex (WriterT m g) -> WriterT m g [Edge (WriterT m g)] #

outDegree :: Vertex (WriterT m g) -> WriterT m g Int #

adjacentVertices :: Vertex (WriterT m g) -> WriterT m g [Vertex (WriterT m g)] #

AdjacencyListGraph g => AdjacencyListGraph (StateT s g) # 

Methods

source :: Edge (StateT s g) -> StateT s g (Vertex (StateT s g)) #

target :: Edge (StateT s g) -> StateT s g (Vertex (StateT s g)) #

outEdges :: Vertex (StateT s g) -> StateT s g [Edge (StateT s g)] #

outDegree :: Vertex (StateT s g) -> StateT s g Int #

adjacentVertices :: Vertex (StateT s g) -> StateT s g [Vertex (StateT s g)] #

AdjacencyListGraph g => AdjacencyListGraph (StateT s g) # 

Methods

source :: Edge (StateT s g) -> StateT s g (Vertex (StateT s g)) #

target :: Edge (StateT s g) -> StateT s g (Vertex (StateT s g)) #

outEdges :: Vertex (StateT s g) -> StateT s g [Edge (StateT s g)] #

outDegree :: Vertex (StateT s g) -> StateT s g Int #

adjacentVertices :: Vertex (StateT s g) -> StateT s g [Vertex (StateT s g)] #

AdjacencyListGraph g => AdjacencyListGraph (IdentityT * g) # 
(AdjacencyListGraph g, Error e) => AdjacencyListGraph (ErrorT e g) # 

Methods

source :: Edge (ErrorT e g) -> ErrorT e g (Vertex (ErrorT e g)) #

target :: Edge (ErrorT e g) -> ErrorT e g (Vertex (ErrorT e g)) #

outEdges :: Vertex (ErrorT e g) -> ErrorT e g [Edge (ErrorT e g)] #

outDegree :: Vertex (ErrorT e g) -> ErrorT e g Int #

adjacentVertices :: Vertex (ErrorT e g) -> ErrorT e g [Vertex (ErrorT e g)] #

AdjacencyListGraph g => AdjacencyListGraph (ReaderT * e g) # 

Methods

source :: Edge (ReaderT * e g) -> ReaderT * e g (Vertex (ReaderT * e g)) #

target :: Edge (ReaderT * e g) -> ReaderT * e g (Vertex (ReaderT * e g)) #

outEdges :: Vertex (ReaderT * e g) -> ReaderT * e g [Edge (ReaderT * e g)] #

outDegree :: Vertex (ReaderT * e g) -> ReaderT * e g Int #

adjacentVertices :: Vertex (ReaderT * e g) -> ReaderT * e g [Vertex (ReaderT * e g)] #

(AdjacencyListGraph g, Monoid m) => AdjacencyListGraph (RWST r m s g) # 

Methods

source :: Edge (RWST r m s g) -> RWST r m s g (Vertex (RWST r m s g)) #

target :: Edge (RWST r m s g) -> RWST r m s g (Vertex (RWST r m s g)) #

outEdges :: Vertex (RWST r m s g) -> RWST r m s g [Edge (RWST r m s g)] #

outDegree :: Vertex (RWST r m s g) -> RWST r m s g Int #

adjacentVertices :: Vertex (RWST r m s g) -> RWST r m s g [Vertex (RWST r m s g)] #

(AdjacencyListGraph g, Monoid m) => AdjacencyListGraph (RWST r m s g) # 

Methods

source :: Edge (RWST r m s g) -> RWST r m s g (Vertex (RWST r m s g)) #

target :: Edge (RWST r m s g) -> RWST r m s g (Vertex (RWST r m s g)) #

outEdges :: Vertex (RWST r m s g) -> RWST r m s g [Edge (RWST r m s g)] #

outDegree :: Vertex (RWST r m s g) -> RWST r m s g Int #

adjacentVertices :: Vertex (RWST r m s g) -> RWST r m s g [Vertex (RWST r m s g)] #