Type error but types match
> unboxedsums git:(prim_sums_rebase_5) x cat primop_bug.hs
{-# LANGUAGE MagicHash, ScopedTypeVariables, UnboxedTuples #-}
module Main where
import GHC.MVar
import GHC.Prim
import GHC.Types
main :: IO ()
main = IO (\rw -> newMVar# rw) >> return ()
> unboxedsums git:(prim_sums_rebase_5) x ghc-stage1 primop_bug.hs -ddump-stg -ddump-cmm -ddump-to-file -fforce-recomp -dumpdir primop_fails -O -fprint-explicit-kinds
[1 of 1] Compiling Main ( primop_bug.hs, primop_bug.o )
primop_bug.hs:10:19: error:
• Couldn't match a lifted type with an unlifted type
Expected type: (# State# RealWorld, MVar# RealWorld a0 #)
Actual type: (# State# RealWorld, MVar# RealWorld a0 #)
• In the expression: newMVar# rw
In the first argument of ‘IO’, namely ‘(\ rw -> newMVar# rw)’
In the first argument of ‘(>>)’, namely ‘IO (\ rw -> newMVar# rw)’
Tried with HEAD, 8.0.1.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |