-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Wouter Swierstra wrote: > > * If you're an ICFP referee, you may want to avoid reading any further* > > > Test.IOSpec Version 1.0 > > > I'm pleased to announce the first release of the Test.IOSpec library, > that provides a pure specification of some functions in the IO monad. > This may be of interest to anyone who wants to debug, reason about, > analyse, or test impure code. > > Essentially, by importing libraries from IOSpec you can the same code > you would normally write in the IO monad. Once you're satisfied that > your functions are reasonably well-behaved, you can remove the > Test.IOSpec import and replace it with the "real" functions instead. > > Website: www.cs.nott.ac.uk/~wss/repos/IOSpec > Darcs: darcs get www.cs.nott.ac.uk/~wss/repos/IOSpec > Tarball: www.cs.nott.ac.uk/~wss/repos/IOSpec/dist/IOSpec-0.1.tar.gz > Haddock: www.cs.nott.ac.uk/~wss/repos/IOSpec/dist/doc/html > > Several examples are included with the sources. > > At the moment, the library consists of the following modules: > > * Test.IOSpec.Teletype: a specification of getChar and putChar. > * Test.IOSpec.IORef: a specification of most functions on IORefs. > * Test.IOSpec.Concurrent: specification of forkIO and MVars. > > As an added feature, running concurrent code using > Test.IOSpec.Concurrent will detect deadlocks, instead of looping > indefinitely. > > Future work includes: > > * Improving the interface, making it easier to combine functions from > different modules. > * Adding more functionality: STM and weak pointers seem likely > candidates. > > If you have any questions, comments, or feedback, please do get in touch. > > Wouter
How does or might this relate to the typeclass-based Restricted IO monad http://article.gmane.org/gmane.comp.lang.haskell.general/14526 ? RIO's technique has the advantage that multiple capabilities can be easily combined in one use of the monad - but this manner of using typeclasses might interfere with how testable it is? (I think that should be okay... Also that this is a really neat project - incremental progress on taming Haskell IO in practice!) Isaac P.S. why > *If you're an ICFP referee, you may want to avoid reading any further* ? -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGLpRmHgcxvIWYTTURAluiAKCc3Bhcp6UXF7j0F1ERfVnzWmhoiQCghb0u wjPxtoY5PPC6TVavW2WP6YQ= =BBIK -----END PGP SIGNATURE----- _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell