The IOSpec package
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.
[Skip to Readme]
|Versions||0.1, 0.1.1, 0.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.3|
|Dependencies||base (>=2 && <5), mtl, QuickCheck (==2.*), Stream [details]|
|Author||Wouter Swierstra, Yusaku Hashimoto|
|Maintainer||Wouter Swierstra <email@example.com>|
|Uploaded||Mon Feb 20 14:46:19 UTC 2012 by WouterSwierstra|
|Distributions||Debian:0.3, Fedora:0.3, NixOS:0.3|
|Downloads||4410 total (51 in the last 30 days)|
|Status||Docs not available [build log]
All reported builds failed as of 2015-12-08 [all 6 reports]
For package maintainers and hackage trustees