
#13610: Unhelpful error messages about lifted and unlifted types -------------------------------------+------------------------------------- Reporter: nomeata | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.1 (Type checker) | 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: -------------------------------------+------------------------------------- I wrote this code: {{{ {-# LANGUAGE MagicHash #-} import GHC.Prim import GHC.Types main = do let primDouble = 0.42## :: Double# let double = 0.42 :: Double IO (\s -> mkWeakNoFinalizer# double () s) }}} and I get this error message: {{{ WeakDouble.hs:8:15: error: • Couldn't match a lifted type with an unlifted type Expected type: (# State# RealWorld, Weak# () #) Actual type: (# State# RealWorld, Weak# () #) • In the expression: mkWeakNoFinalizer# double () s In the first argument of ‘IO’, namely ‘(\ s -> mkWeakNoFinalizer# double () s)’ In a stmt of a 'do' block: IO (\ s -> mkWeakNoFinalizer# double () s) }}} with `-fprint-explicit-kinds`. (Without the flag, it looks the same, but tells me to use this flag…). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13610 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler