
#9795: Debug.Trace.trace is too strict -------------------------------------+------------------------------------- Reporter: jcpetruzza | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: | Version: 7.8.3 libraries/base | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: None/Unknown | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by jcpetruzza): As another example of why `trace` shouldn't be strict, consider the following: {{{#!hs f xs = trace (show xs) $ g 0 xs where g n [] = n g n (x:xs) = g (n+1) xs main = print $ f [1..] }}} Because `trace` is strict, no output will be shown, which hides the fact that `f` is actually being called but with invalid input. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9795#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler