IOSpec-0.3.1.2: A pure specification of the IO monad.

# IOSpec-0.3.1.2: 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 the `STM` 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.

Modules

IOSpec-0.3.1.2

- Test
  Submodules
  - Test.IOSpec
    Submodules
    - Test.IOSpec.Fork
    - Test.IOSpec.IORef
    - Test.IOSpec.MVar
    - Test.IOSpec.STM
    - Test.IOSpec.Surrogate
    - Test.IOSpec.Teletype
    - Test.IOSpec.Types
    - Test.IOSpec.VirtualMachine