Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.Haskell.TH.TypeGraph.Graph
Description
Abstract operations on Maps containing graph edges.
- type GraphEdges node key = Map key (node, Set key)
- graphFromMap :: forall node key. Ord key => GraphEdges node key -> (Graph, Vertex -> (node, key, [key]), key -> Maybe Vertex)
- cut :: (Eq a, Ord a) => Set a -> GraphEdges node a -> GraphEdges node a
- cutM :: (Functor m, Monad m, Eq a, Ord a) => (a -> m Bool) -> GraphEdges node a -> m (GraphEdges node a)
- isolate :: (Eq a, Ord a) => Set a -> GraphEdges node a -> GraphEdges node a
- isolateM :: (Functor m, Monad m, Eq a, Ord a) => (a -> m Bool) -> GraphEdges node a -> m (GraphEdges node a)
- dissolve :: (Eq a, Ord a) => Set a -> GraphEdges node a -> GraphEdges node a
- dissolveM :: (Functor m, Monad m, Eq a, Ord a) => (a -> m Bool) -> GraphEdges node a -> m (GraphEdges node a)
Documentation
type GraphEdges node key = Map key (node, Set key) Source
graphFromMap :: forall node key. Ord key => GraphEdges node key -> (Graph, Vertex -> (node, key, [key]), key -> Maybe Vertex) Source
Build a graph from the result of typeGraphEdges, each edge goes from a type to one of the types it contains. Thus, each edge represents a primitive lens, and each path in the graph is a composition of lenses.
cut :: (Eq a, Ord a) => Set a -> GraphEdges node a -> GraphEdges node a Source
Isolate and remove some nodes
cutM :: (Functor m, Monad m, Eq a, Ord a) => (a -> m Bool) -> GraphEdges node a -> m (GraphEdges node a) Source
Monadic predicate version of cut
.
isolate :: (Eq a, Ord a) => Set a -> GraphEdges node a -> GraphEdges node a Source
Remove all the in- and out-edges of some nodes
isolateM :: (Functor m, Monad m, Eq a, Ord a) => (a -> m Bool) -> GraphEdges node a -> m (GraphEdges node a) Source
Monadic predicate version of isolate
.
dissolve :: (Eq a, Ord a) => Set a -> GraphEdges node a -> GraphEdges node a Source
Remove some nodes and extend each of their in-edges to each of their out-edges
dissolveM :: (Functor m, Monad m, Eq a, Ord a) => (a -> m Bool) -> GraphEdges node a -> m (GraphEdges node a) Source
Monadic predicate version of dissolve
.