do-list-1.0.1: Do notation for free

Safe HaskellNone
LanguageHaskell2010

Data.DoMonoid

Description

Construct monoids with do notation. For more information see https://github.com/tserduke/do-list#readme.

Synopsis

Documentation

type DoMonoid m = DoMonoidM m () Source #

The type shortcut.

newtype DoMonoidM m r Source #

DoMonoidM is not a real instance of Monad, Applicative or Functor. It pretends being them with a phantom result type.

Constructors

DoM m 

Instances

Monoid a => Monad (DoMonoidM a) Source #

Monadic operations are not supported.

Methods

(>>=) :: DoMonoidM a a -> (a -> DoMonoidM a b) -> DoMonoidM a b #

(>>) :: DoMonoidM a a -> DoMonoidM a b -> DoMonoidM a b #

return :: a -> DoMonoidM a a #

fail :: String -> DoMonoidM a a #

Functor (DoMonoidM a) Source #

Functor operations are not supported.

Methods

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

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

Applicative (DoMonoidM a) Source #

Applicative operations are not supported.

Methods

pure :: a -> DoMonoidM a a #

(<*>) :: DoMonoidM a (a -> b) -> DoMonoidM a a -> DoMonoidM a b #

(*>) :: DoMonoidM a a -> DoMonoidM a b -> DoMonoidM a b #

(<*) :: DoMonoidM a a -> DoMonoidM a b -> DoMonoidM a a #

IsList m => IsList (DoMonoidM m r) Source # 

Associated Types

type Item (DoMonoidM m r) :: * #

Methods

fromList :: [Item (DoMonoidM m r)] -> DoMonoidM m r #

fromListN :: Int -> [Item (DoMonoidM m r)] -> DoMonoidM m r #

toList :: DoMonoidM m r -> [Item (DoMonoidM m r)] #

Eq m => Eq (DoMonoidM m r) Source # 

Methods

(==) :: DoMonoidM m r -> DoMonoidM m r -> Bool #

(/=) :: DoMonoidM m r -> DoMonoidM m r -> Bool #

Ord m => Ord (DoMonoidM m r) Source # 

Methods

compare :: DoMonoidM m r -> DoMonoidM m r -> Ordering #

(<) :: DoMonoidM m r -> DoMonoidM m r -> Bool #

(<=) :: DoMonoidM m r -> DoMonoidM m r -> Bool #

(>) :: DoMonoidM m r -> DoMonoidM m r -> Bool #

(>=) :: DoMonoidM m r -> DoMonoidM m r -> Bool #

max :: DoMonoidM m r -> DoMonoidM m r -> DoMonoidM m r #

min :: DoMonoidM m r -> DoMonoidM m r -> DoMonoidM m r #

Read m => Read (DoMonoidM m r) Source # 
Show m => Show (DoMonoidM m r) Source # 

Methods

showsPrec :: Int -> DoMonoidM m r -> ShowS #

show :: DoMonoidM m r -> String #

showList :: [DoMonoidM m r] -> ShowS #

IsString m => IsString (DoMonoidM m r) Source # 

Methods

fromString :: String -> DoMonoidM m r #

type Item (DoMonoidM m r) Source # 
type Item (DoMonoidM m r) = Item m

runDoM :: DoMonoidM m r -> m Source #

Unwrap the monoid.