<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Why oh why doesn't this work as I expect, and what is the simplest fix? <br><br>speedTest 4 = 44<br><br>time :: (Show t) => IO t -> IO t<br>time a = do<br> start <- getCPUTime<br> v <- a<br> end <- getCPUTime<br> let diff = (fromIntegral (end - start)) / (10^12)<br> print v -- WHY DOESNT THIS WORK? ALWAYS PRINTS () ....<br> printf "Computation time: %0.3f sec\n" (diff :: Double)<br> return v<br><br>main :: IO ()<br>main = do<br> args <- getArgs<br> time $ speedTest (read $ head args) `seq` return ()<br></td></tr></table><br>