Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
Test.IOSpec
Synopsis
- module Test.IOSpec.Fork
- module Test.IOSpec.MVar
- module Test.IOSpec.IORef
- module Test.IOSpec.STM
- module Test.IOSpec.Teletype
- data IOSpec (f :: Type -> Type) a
- data ((f :: Type -> Type) :+: (g :: Type -> Type)) x
- inject :: forall g (f :: Type -> Type) a. g :<: f => g (IOSpec f a) -> IOSpec f a
- class (Functor sub, Functor sup) => (sub :: Type -> Type) :<: (sup :: Type -> Type)
- module Test.IOSpec.VirtualMachine
The specifications
module Test.IOSpec.Fork
module Test.IOSpec.MVar
module Test.IOSpec.IORef
module Test.IOSpec.STM
module Test.IOSpec.Teletype
The basic types
data IOSpec (f :: Type -> Type) a Source #
A value of type IOSpec
f
a
is either a pure value of type a
or some effect, determined by f
. Crucially, IOSpec
f
is a
monad, provided f
is a functor.
data ((f :: Type -> Type) :+: (g :: Type -> Type)) x infixr 5 Source #
The coproduct of functors
Instances
(Functor f, Functor g) => f :<: (f :+: g) Source # | |
Defined in Test.IOSpec.Types | |
(f :<: g, Functor f, Functor g, Functor h) => f :<: (h :+: g) Source # | |
Defined in Test.IOSpec.Types | |
(Executable f, Executable g) => Executable (f :+: g) Source # | |
(Functor f, Functor g) => Functor (f :+: g) Source # | |
class (Functor sub, Functor sup) => (sub :: Type -> Type) :<: (sup :: Type -> Type) Source #
The (:<:) class
Minimal complete definition
inj
The virtual machine
module Test.IOSpec.VirtualMachine