-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Fast, memory efficient and persistent graph implementation -- @package graph-core @version 0.2.2.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 Show k => Show (NodeManager k) instance Eq k => Eq (NodeManager k) instance Arbitrary v => Arbitrary (IntMap v) 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 Show k => Show (PersistentGraph k) instance Eq k => Eq (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]