Permalink
Fetching contributors…
Cannot retrieve contributors at this time
23 lines (18 sloc) 730 Bytes
module Main where
import qualified Control.Monad.Trans.RSS.Lazy as RSSL
import qualified Control.Monad.Trans.RSS.Strict as RSSS
import System.Environment
import Control.Monad.Writer
n :: Int
n = 10000000
main :: IO ()
main = do
print $ RSSS.runRSS (replicateM_ n $ tell $ Sum (1 :: Int)) () ()
tryExplode <- fmap (not . null) getArgs
if tryExplode
then do
putStrLn "Strict version ok, the next test should explode the stack."
print $ RSSL.runRSS (replicateM_ n $ tell $ Sum (1 :: Int)) () ()
putStrLn "Lazy version should have exploded !"
else
putStrLn "Do not try exploding the stack. Run the test program with any command line argument to test it"