cifl-math-library-1.1.1.0: Math libraries
Safe HaskellSafe
LanguageHaskell2010

Math.Graph.GraphMonad

Synopsis

Documentation

newtype GraphM g a Source #

This monad is based on idea from "Mac Lane: Categories for the working mathematician" e.g. monad defined by the functor T(A) = G x A, where G is a group or monoid.

Constructors

GraphM 

Fields

Instances

Instances details
Monoid g => MonadWriter g (GraphM g) Source # 
Instance details

Defined in Math.Graph.GraphMonad

Methods

writer :: (a, g) -> GraphM g a #

tell :: g -> GraphM g () #

listen :: GraphM g a -> GraphM g (a, g) #

pass :: GraphM g (a, g -> g) -> GraphM g a #

Monoid g => MonadFail (GraphM g) Source # 
Instance details

Defined in Math.Graph.GraphMonad

Methods

fail :: String -> GraphM g a #

Monoid g => Applicative (GraphM g) Source # 
Instance details

Defined in Math.Graph.GraphMonad

Methods

pure :: a -> GraphM g a #

(<*>) :: GraphM g (a -> b) -> GraphM g a -> GraphM g b #

liftA2 :: (a -> b -> c) -> GraphM g a -> GraphM g b -> GraphM g c #

(*>) :: GraphM g a -> GraphM g b -> GraphM g b #

(<*) :: GraphM g a -> GraphM g b -> GraphM g a #

Functor (GraphM g) Source # 
Instance details

Defined in Math.Graph.GraphMonad

Methods

fmap :: (a -> b) -> GraphM g a -> GraphM g b #

(<$) :: a -> GraphM g b -> GraphM g a #

Monoid g => Monad (GraphM g) Source # 
Instance details

Defined in Math.Graph.GraphMonad

Methods

(>>=) :: GraphM g a -> (a -> GraphM g b) -> GraphM g b #

(>>) :: GraphM g a -> GraphM g b -> GraphM g b #

return :: a -> GraphM g a #

runGraphActionM :: (a -> g -> a) -> GraphM g a -> a Source #

actMG :: g -> GraphM g () Source #

data GraphMT m g a Source #

Constructors

GraphMT 

Fields

Instances

Instances details
(Monoid g, MonadFail m) => MonadFail (GraphMT m g) Source # 
Instance details

Defined in Math.Graph.GraphMonad

Methods

fail :: String -> GraphMT m g a #

(Monoid g, Applicative m) => Applicative (GraphMT m g) Source # 
Instance details

Defined in Math.Graph.GraphMonad

Methods

pure :: a -> GraphMT m g a #

(<*>) :: GraphMT m g (a -> b) -> GraphMT m g a -> GraphMT m g b #

liftA2 :: (a -> b -> c) -> GraphMT m g a -> GraphMT m g b -> GraphMT m g c #

(*>) :: GraphMT m g a -> GraphMT m g b -> GraphMT m g b #

(<*) :: GraphMT m g a -> GraphMT m g b -> GraphMT m g a #

Functor m => Functor (GraphMT m g) Source # 
Instance details

Defined in Math.Graph.GraphMonad

Methods

fmap :: (a -> b) -> GraphMT m g a -> GraphMT m g b #

(<$) :: a -> GraphMT m g b -> GraphMT m g a #

(Monoid g, Monad m) => Monad (GraphMT m g) Source # 
Instance details

Defined in Math.Graph.GraphMonad

Methods

(>>=) :: GraphMT m g a -> (a -> GraphMT m g b) -> GraphMT m g b #

(>>) :: GraphMT m g a -> GraphMT m g b -> GraphMT m g b #

return :: a -> GraphMT m g a #

actMT :: Monad m => g -> GraphMT m g a -> GraphMT m g a Source #