
#10176: Invalid core generated with GHC 7.10 RC3 -------------------------------------+------------------------------------- Reporter: NeilMitchell | Owner: Type: bug | Status: new Priority: high | Milestone: 7.10.1 Component: Compiler | Version: 7.10.1-rc3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by nomeata): I simplified your code slightly, removing everything about type classes: {{{ module Buggy(buggy) where import Errors newtype ReaderT r a = ReaderT { runReaderT :: r -> IO a } p = liftReaderT (return ()) m >>> k = ReaderT $ \r -> do runReaderT m r; runReaderT k r liftReaderT :: IO a -> ReaderT r a liftReaderT m = ReaderT (const m) {-# NOINLINE buggy #-} buggy :: (() -> Bool) -> () -> Bool -> IO () buggy fun unit bool = runReaderT ( (if bool then liftReaderT $ print () else p) >>> (if fun unit then error2Args unit unit >>> p else p)) () }}} still exhibits the problem. Removing the `newtype`, or turning it into a `data` makes the problem go away. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10176#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler