Entered absent argument (again)
Consider this program:
{-# LANGUAGE MagicHash, UnboxedTuples #-}
module Main where
import GHC.Exts
f :: (() -> (# Int#, () #)) -> ()
{-# NOINLINE f #-}
-- Strictness signature was (7.8.2)
-- <C(S(LS)), 1*C1(U(A,1*U()))>
-- I.e. calls k, but discards first component of result
f k = case k () of (# _, r #) -> r
g :: Int -> ()
g y = f (\n -> (# case y of I# y2 -> h (h (h (h (h (h (h y2)))))), n #))
-- RHS is big enough to force worker/wrapper
{-# NOINLINE h #-}
h :: Int# -> Int#
h n = n +# 1#
main = print (g 1)
You'll get
bash$ ghc -O -o foo Foo.hs
bash$ ./foo
foo: Oops! Entered absent arg w_s4vl Int
Ugh! This is the bug underlying this bug report.
I know what is going on.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.8.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |