monad-products-4.0.1: Monad products

Copyright(C) 2011-2013 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Control.Monad.Product

Description

Monad Products

Synopsis

Documentation

newtype Product g h a #

disjoint Graph union as a Monad product

Constructors

Product 

Fields

Instances

(Monad g, Monad h) => Monad (Product g h) # 

Methods

(>>=) :: Product g h a -> (a -> Product g h b) -> Product g h b #

(>>) :: Product g h a -> Product g h b -> Product g h b #

return :: a -> Product g h a #

fail :: String -> Product g h a #

(Functor g, Functor h) => Functor (Product g h) # 

Methods

fmap :: (a -> b) -> Product g h a -> Product g h b #

(<$) :: a -> Product g h b -> Product g h a #

(Applicative g, Applicative h) => Applicative (Product g h) # 

Methods

pure :: a -> Product g h a #

(<*>) :: Product g h (a -> b) -> Product g h a -> Product g h b #

(*>) :: Product g h a -> Product g h b -> Product g h b #

(<*) :: Product g h a -> Product g h b -> Product g h a #

(Alternative g, Alternative h) => Alternative (Product g h) # 

Methods

empty :: Product g h a #

(<|>) :: Product g h a -> Product g h a -> Product g h a #

some :: Product g h a -> Product g h [a] #

many :: Product g h a -> Product g h [a] #

(MonadPlus g, MonadPlus h) => MonadPlus (Product g h) # 

Methods

mzero :: Product g h a #

mplus :: Product g h a -> Product g h a -> Product g h a #

(Alt g, Alt h) => Alt (Product g h) # 

Methods

(<!>) :: Product g h a -> Product g h a -> Product g h a #

some :: Applicative (Product g h) => Product g h a -> Product g h [a] #

many :: Applicative (Product g h) => Product g h a -> Product g h [a] #

(Apply g, Apply h) => Apply (Product g h) # 

Methods

(<.>) :: Product g h (a -> b) -> Product g h a -> Product g h b #

(.>) :: Product g h a -> Product g h b -> Product g h b #

(<.) :: Product g h a -> Product g h b -> Product g h a #

(Bind g, Bind h) => Bind (Product g h) # 

Methods

(>>-) :: Product g h a -> (a -> Product g h b) -> Product g h b #

join :: Product g h (Product g h a) -> Product g h a #