-- Skip a bunch of output in Core that distracts from the main point {-# OPTIONS -dsuppress-all -dno-suppress-type-signatures #-} -- If this line is here, common subexpression elimination (CSE) is turned off. -- Comment this line to enable CSE, and see GHC deduplicating the "computation" -- for x. {-# OPTIONS -fno-cse #-} x :: Num a => a x = 4 main = do print x print x putStrLn "hi" print x