
#14002: Defining a function in GHCi results in different strictness behavior than defining it in a file -------------------------------------+------------------------------------- Reporter: cocreature | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- When defining a strict composition function in GHCi using {{{ let f .:. g = seq f (seq g (\x -> f (g x))) }}} (omitting the let makes no difference) and then executing {{{ seq (undefined .:. undefined) () }}} this evaluates to {{{()}}} instead of bottom as I would have expected. If {{{.:.}}} is defined an a file and then loaded in GHCi the same statement evaluates to bottom. This also holds when {{{.:.}}} is introduced via a let+in instead of a separate let statement. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14002 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler