apart-0.1.1: Get all your structure and rip it apart.

Safe HaskellSafe
LanguageHaskell2010

Data.Apart.Structures.Graph

Synopsis

Documentation

type Graph = Cofree Edge Source #

Directed acyclic graph.

data Edge a Source #

Constructors

Empty 
Single a 
Connect a 
Overlay a 

Instances

Functor Edge Source # 

Methods

fmap :: (a -> b) -> Edge a -> Edge b #

(<$) :: a -> Edge b -> Edge a #

Foldable Edge Source # 

Methods

fold :: Monoid m => Edge m -> m #

foldMap :: Monoid m => (a -> m) -> Edge a -> m #

foldr :: (a -> b -> b) -> b -> Edge a -> b #

foldr' :: (a -> b -> b) -> b -> Edge a -> b #

foldl :: (b -> a -> b) -> b -> Edge a -> b #

foldl' :: (b -> a -> b) -> b -> Edge a -> b #

foldr1 :: (a -> a -> a) -> Edge a -> a #

foldl1 :: (a -> a -> a) -> Edge a -> a #

toList :: Edge a -> [a] #

null :: Edge a -> Bool #

length :: Edge a -> Int #

elem :: Eq a => a -> Edge a -> Bool #

maximum :: Ord a => Edge a -> a #

minimum :: Ord a => Edge a -> a #

sum :: Num a => Edge a -> a #

product :: Num a => Edge a -> a #

Traversable Edge Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Edge a -> f (Edge b) #

sequenceA :: Applicative f => Edge (f a) -> f (Edge a) #

mapM :: Monad m => (a -> m b) -> Edge a -> m (Edge b) #

sequence :: Monad m => Edge (m a) -> m (Edge a) #

Show a => Show (Edge a) Source # 

Methods

showsPrec :: Int -> Edge a -> ShowS #

show :: Edge a -> String #

showList :: [Edge a] -> ShowS #

star :: Foldable t => a -> t a -> Graph a Source #

remove :: Eq a => a -> Cofree Edge a -> Edge (Cofree Edge a) Source #

Remove vertex and all of its edges.