IOSpec-0.2.5: A pure specification of the IO monad.
This package consists of several modules, that give a pure specification of functions in the IO monad:
- Test.IOSpec.Fork: a pure specification of
forkIO
. - Test.IOSpec.IORef: a pure specification of most
functions that create and manipulate on
IORefs
. - Test.IOSpec.MVar: a pure specification of most
functions that create and manipulate and
MVars
. - Test.IOSpec.STM: a pure specification of
atomically
and theSTM
monad. - Test.IOSpec.Teletype: a pure specification of
getChar
,putChar
, and several related Prelude functions.
Besides these modules containing the specifications, there are a few other important modules:
- Test.IOSpec.Types: defines the
IOSpec
type and several amenities. - Test.IOSpec.VirtualMachine: defines a virtual machine on which to execute pure specifications.
- Test.IOSpec.Surrogate: a drop-in replacement for the other modules. Import this and recompile your code once you've finished testing and debugging.
There are several well-documented examples included with the source distribution.