[GHC] #14963: ghci -fdefer-type-errors can't run IO action from another module

GHC ghc-devs at haskell.org
Wed Jun 6 15:24:31 UTC 2018


#14963: ghci -fdefer-type-errors can't run IO action from another module
-------------------------------------+-------------------------------------
        Reporter:  elaforge          |                Owner:  tdammers
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.4.2
       Component:  GHCi              |              Version:  8.4.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by tdammers):

 The `:set` turns out to work just fine; I trapped the DynFlags right where
 GHCi runs those expressions, and both flags that control deferred type
 errors are now forced off; yet the panic still occurs when running ghci
 with `-fdefer-type-errors`.

 From the error message, it seems to me like GHCi is trying to print a
 module name, but fails, and this only happens when starting up with
 deferred type errors. I assume the module in question is the `Foo` module
 just loaded.

 Another data point is that the panic does not occur when I change the
 `Foo` module like so:

 {{{
 module Foo where

 test :: IO ()
 test = return ()
 }}}

 My hypothesis here is that because GHCi does not print the result of an IO
 action if its type is `()`, so the whole pretty-printing machinery doesn't
 run.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14963#comment:24>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list