初学者に対して最初に教えるべきモジュールじゃなかろうか。(と言いつつ未だにまともにつかったことない)
% runghc
import Debug.Trace
add :: Int -> Int -> Int
add n m = (n, m) `traceShow` if n == 0
then m
else 1 + add (n - 1) m
main :: IO ()
main = do
let str = show $ 3 `add` 2
print $ if str == "5" then "true" else "false"
【実行結果】
(3,2)
(2,2)
(1,2)
(0,2)
"true"