A month ago i uploaded the package Workflow to hackage, the repository of Haskell libraries. I added an hopefully self suficient documentations and examples.
Here follows a few remarks, a simple example and a more sophsticated example:
The main features are:
Here is a complete example: This is a counter that shows a sequence of numbers, one a second: module Main where import Control.Concurrent(threadDelay) import System.IO (hFlush,stdout) count n= putStr (show n ++ ) >> hFlush stdout >> threadDelay 1000000 >> count (n+1) main= count 0 This is the same program, with the added feature of remembering the last count after interrupted: module Main where import Control.Workflow import Control.Concurrent(threadDelay) import System.IO (hFlush,stdout) mcount n= step $ putStr (show n ++ ) >> hFlush stdout >> threadDelay 1000000 >> mcount (n+1) main= do registerType :: IO () registerType :: IO Int let start= 0 :: Int startWF count start [(count, mcount)] :: IO () This is the execution log: Worflow-0.5.5demos>runghc sequence.hs 0 1 2 3 4 5 6 7 sequence.hs: win32ConsoleHandler sequence.hs: sequence.hs: interrupted Worflow-0.5.5demos> Worflow-0.5.5demos>runghc sequence.hs 7 8 9 10 11 .... |
Here is the complete documentation iof the package
And here is a more sophisticated example, at pastebin.org. The code is also documented.