-------------------------------------------------------------------------------

enumBFS :: (MonadIO m, Hashable a)
        => Node a
        -> BFSGraph a
        -> Enumerator (NavEvent (Node a)) m b
enumBFS source0 g = 
    enumNavigation (\_ _ -> return 1)
                   (return . (`getNodeNeighbours` g))
                   source0
enumBFS :: (MonadIO m, Hashable a)
        => Node a
        -> BFSGraph a
        -> Enumerator (NavEvent (Node a)) m b
enumBFS source0 g = 
    enumNavigation (\_ _ -> return 1)
                   (return . (`getNodeNeighbours` g))
                   source0
enumBFS source0 g = 
    enumNavigation (\_ _ -> return 1)
                   (return . (`getNodeNeighbours` g))
                   source0