Dear Haskellers, I'm pleased to announce the *release* of operational-0.2.0.0 , a tiny library for implementing monads by specifying their operational semantics.
This library is based on "The Operational Monad Tutorial", first published in Issue 15 on The Monad.Reader. http://themonadreader.wordpress.com/2010/01/26/issue-15/ The *main abstraction* is a type Program corresponding to a list of primitive instructions which are then interpreted with operational semantics given by the user; the monad laws hold automatically. Monad transformers can also be implemented and will automatically satisfy the lifting laws. The library comes with *excessive documentation*, including a proof of the monad laws. Elaborate example code demonstrates previously difficult to implement monads, like a CGI monad that models a web session but does not require the CGI script to run in a persistent process. The newest addition is a program for playing tic-tac-toe that demonstrates a monad for implementing different players, like humans or AI. *Get it* from hackage http://hackage.haskell.org/package/operational or browse the project website and documentation http://projects.haskell.org/operational/ Changes ------- version 0.1.0.0 -> version 0.2.0.0 * changed name of view type to `ProgramView` * added instances for mtl classes * new function `liftProgram` to embed `Program` in `ProgramT` * new example TicTacToe.hs * various documentation updates Regards, Heinrich Apfelmus -- http://apfelmus.nfshost.com _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell