-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Fast, memory efficient and persistent graph implementation -- -- A small package providing a powerful and easy to use Haskell graph -- implementation. @package graph-core @version 0.3.0.0 module Data.Core.Graph.NodeManager data NodeManager k type Node = Int type NodeMap v = IntMap v type NodeSet = IntSet emptyNode :: Node initNodeManager :: (Hashable k, Eq k) => NodeMap k -> NodeManager k emptyNodeManager :: NodeManager k getNodeMap :: (Hashable k, Eq k) => NodeManager k -> NodeMap k getNodeHandle :: (Hashable k, Eq k, MonadState (NodeManager k) m) => k -> m Node getExistingNodeHandle :: (Hashable k, Eq k) => k -> NodeManager k -> Maybe Node lookupNode :: Node -> NodeManager k -> Maybe k unsafeLookupNode :: Node -> NodeManager k -> k removeNodeHandle :: (Hashable k, Eq k) => Node -> NodeManager k -> NodeManager k getNewNodesSince :: Node -> NodeManager k -> NodeMap k keys :: NodeManager k -> [k] hasKey :: (Eq k, Hashable k) => k -> NodeManager k -> Bool nodes :: NodeManager k -> [Node] toList :: NodeManager k -> [(k, Node)] isConsistent :: (Ord k) => NodeManager k -> Bool instance GHC.Classes.Eq k => GHC.Classes.Eq (Data.Core.Graph.NodeManager.NodeManager k) instance GHC.Show.Show k => GHC.Show.Show (Data.Core.Graph.NodeManager.NodeManager k) module Data.Core.Graph.Persistence data PersistentGraph k persistGraph :: (Eq k, Hashable k) => NodeManager k -> Graph -> PersistentGraph k loadGraph :: (Eq k, Hashable k) => PersistentGraph k -> (NodeManager k, Graph) instance GHC.Classes.Eq k => GHC.Classes.Eq (Data.Core.Graph.Persistence.PersistentGraph k) instance GHC.Show.Show k => GHC.Show.Show (Data.Core.Graph.Persistence.PersistentGraph k) module Data.Core.Graph data Graph type Node = Int type NodeSet = IntSet data Edge Edge :: !Node -> !Node -> Edge [src] :: Edge -> !Node [tgt] :: Edge -> !Node empty :: Graph fromEdges :: [Edge] -> Graph fromAdj :: [(Node, [Node])] -> Graph isConsistent :: Graph -> Bool nodes :: Graph -> [Node] edges :: Graph -> [Edge] children :: Graph -> Node -> Vector Node parents :: Graph -> Node -> Vector Node hasEdge :: Node -> Node -> Graph -> Bool edgeCount :: Graph -> Int hull :: Graph -> Node -> NodeSet rhull :: Graph -> Node -> NodeSet hullFold :: Graph -> (b -> Node -> b) -> b -> Node -> b hullFoldM :: Monad m => Graph -> (b -> Node -> m b) -> b -> Node -> m b rhullFold :: Graph -> (b -> Node -> b) -> b -> Node -> b addEdge :: Node -> Node -> Graph -> Graph addEdges :: [Edge] -> Graph -> Graph removeEdge :: Node -> Node -> Graph -> Graph removeEdges :: [Edge] -> Graph -> Graph addNode :: Node -> Graph -> Graph removeNode :: Node -> Graph -> Graph solitaireNodes :: Graph -> [Node] edgesAdj :: AdjList -> [Edge]