module consumer import StdEnv import producer echo :: a *World -> *World | toString a echo s w # (io,w) = stdio w # io = io <<< toString s <<< "\n" # (ok,w) = fclose io w | not ok = abort "Couldn't close stdio" | otherwise = w Start :: *World -> *World Start w # w = echo " Producer - Consumer" w # w = consume 0 1 w = w where consume :: !Int !Int *World -> *World consume i n w # n = abs (produce n) # w = echo n w | n <> 0 = consume (i+1) n w | otherwise = w