effect-monad-0.8.1.0: Embeds effect systems and program logics into Haskell using graded monads and parameterised monads

Safe HaskellNone
LanguageHaskell98

Control.Effect.Maybe

Synopsis

Documentation

data F Source #

Provides an indexed version of the |Maybe| monad

Instances

type Plus * IMaybe F s Source # 
type Plus * IMaybe F s = F
type Alt * IMaybe T F Source # 
type Alt * IMaybe T F = U
type Alt * IMaybe F T Source # 
type Alt * IMaybe F T = U
type Alt * IMaybe F F Source # 
type Alt * IMaybe F F = F

data T Source #

Instances

type Plus * IMaybe T s Source # 
type Plus * IMaybe T s = s
type Alt * IMaybe T T Source # 
type Alt * IMaybe T T = T
type Alt * IMaybe T F Source # 
type Alt * IMaybe T F = U
type Alt * IMaybe F T Source # 
type Alt * IMaybe F T = U

data U Source #

Instances

type Plus * IMaybe U s Source # 
type Plus * IMaybe U s = U

data IMaybe p a where Source #

Constructors

INothing :: IMaybe F a 
IJust :: a -> IMaybe T a 
IDyn :: IMaybe s a -> IMaybe U a 

Instances

Effect * IMaybe Source # 

Associated Types

type Unit IMaybe (m :: IMaybe -> * -> *) :: k Source #

type Plus IMaybe (m :: IMaybe -> * -> *) (f :: IMaybe) (g :: IMaybe) :: k Source #

type Inv IMaybe (m :: IMaybe -> * -> *) (f :: IMaybe) (g :: IMaybe) :: Constraint Source #

Methods

return :: a -> m (Unit IMaybe m) a Source #

(>>=) :: Inv IMaybe m f g => m f a -> (a -> m g b) -> m (Plus IMaybe m f g) b Source #

(>>) :: Inv IMaybe m f g => m f a -> m g b -> m (Plus IMaybe m f g) b Source #

Cond * IMaybe Source # 

Associated Types

type AltInv IMaybe (m :: IMaybe -> * -> *) (s :: IMaybe) (t :: IMaybe) :: Constraint Source #

type Alt IMaybe (m :: IMaybe -> * -> *) (s :: IMaybe) (t :: IMaybe) :: k Source #

Methods

ifM :: AltInv IMaybe m s t => Bool -> m s a -> m t a -> m (Alt IMaybe m s t) a Source #

Show a => Show (IMaybe p a) Source # 

Methods

showsPrec :: Int -> IMaybe p a -> ShowS #

show :: IMaybe p a -> String #

showList :: [IMaybe p a] -> ShowS #

type Unit * IMaybe Source # 
type Unit * IMaybe = T
type Plus * IMaybe U s Source # 
type Plus * IMaybe U s = U
type Plus * IMaybe T s Source # 
type Plus * IMaybe T s = s
type Plus * IMaybe F s Source # 
type Plus * IMaybe F s = F
type Inv * IMaybe s t Source # 
type Inv * IMaybe s t = ()
type AltInv * IMaybe s t Source # 
type AltInv * IMaybe s t = ()
type Alt * IMaybe T T Source # 
type Alt * IMaybe T T = T
type Alt * IMaybe T F Source # 
type Alt * IMaybe T F = U
type Alt * IMaybe F T Source # 
type Alt * IMaybe F T = U
type Alt * IMaybe F F Source # 
type Alt * IMaybe F F = F