[GHC] #12784: Typechecker regression in GHC 8.0.2 involving DefaultSignatures
GHC
ghc-devs at haskell.org
Wed Nov 2 17:12:42 UTC 2016
#12784: Typechecker regression in GHC 8.0.2 involving DefaultSignatures
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner:
Type: bug | Status: new
Priority: highest | Milestone: 8.0.2
Component: Compiler | Version: 8.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: GHC rejects | Unknown/Multiple
valid program | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by rwbarton):
I just mean to say that `monad-logger` should just fix its code, since the
fix will surely be needed anyway.
RyanGlScott, it's more wrong than that. Let's charitably assume that `t m`
refers to the instance we are deriving, like `IdentityT m`. Then how can
the body of the default declaration type check?
{{{#!hs
askLoggerIO = Trans.lift askLoggerIO
}}}
`askLoggerIO` is a method of `MonadLoggerIO` and we need it at type `m`.
But we only have the constraints `MonadLogger (t m), MonadIO (t m)`, which
are insufficient (and useless). The only way GHC could think this type
checks is if BOTH `t m` and `m` refer to the instance being derived, which
is terribly wrong.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12784#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list