
#14901: dsrun004 fails with most ways -------------------------------------+------------------------------------- Reporter: alpmestan | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.5 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect result | Unknown/Multiple at runtime | Test Case: dsrun004 Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by alpmestan): If I change one or more `seq`s into `pseq`, in order for this test to be a little more useful (because `pseq` might prevent some transformations that could make things go wrong with `seq`, so we can hope that the trace is reliably `one` then `two`), ghc isn't happy: {{{#!hs ... import GHC.Conc ... {-# NOINLINE f #-} f :: a -> b -> (# a,b #) f x y = x `pseq` y `pseq` (# x,y #) -- similar with x `pseq` y `seq` (# x,y #) }}} {{{ dsrun014.hs:10:9: error: • Couldn't match a lifted type with an unlifted type When matching types b0 :: * (# a, b #) :: TYPE ('GHC.Types.TupleRep '['GHC.Types.LiftedRep, 'GHC.Types.LiftedRep]) • In the expression: x `pseq` y `pseq` (# x, y #) In an equation for ‘f’: f x y = x `pseq` y `pseq` (# x, y #) • Relevant bindings include y :: b (bound at dsrun014.hs:10:5) x :: a (bound at dsrun014.hs:10:3) f :: a -> b -> (# a, b #) (bound at dsrun014.hs:10:1) dsrun014.hs:10:27: error: • Couldn't match a lifted type with an unlifted type When matching types b0 :: * (# a, b #) :: TYPE ('GHC.Types.TupleRep '['GHC.Types.LiftedRep, 'GHC.Types.LiftedRep]) • In the second argument of ‘pseq’, namely ‘(# x, y #)’ In the second argument of ‘pseq’, namely ‘y `pseq` (# x, y #)’ In the expression: x `pseq` y `pseq` (# x, y #) • Relevant bindings include y :: b (bound at dsrun014.hs:10:5) x :: a (bound at dsrun014.hs:10:3) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14901#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler