[GHC] #9456: Weird behavior with polymorphic function involving existential quantification and GADTs

GHC ghc-devs at haskell.org
Mon Aug 18 22:55:38 UTC 2014


#9456: Weird behavior with polymorphic function involving existential
quantification and GADTs
-------------------------------------+-------------------------------------
              Reporter:  haasn       |            Owner:
                  Type:  bug         |           Status:  new
              Priority:  normal      |        Milestone:
             Component:  Compiler    |          Version:  7.8.2
  (Type checker)                     |         Keywords:
            Resolution:              |     Architecture:  Unknown/Multiple
      Operating System:              |       Difficulty:  Unknown
  Unknown/Multiple                   |       Blocked By:
       Type of failure:  GHC         |  Related Tickets:
  rejects valid program              |
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by rwbarton):

 This is all expected behavior—for some value of "expected"! See
 https://www.haskell.org/ghc/docs/latest/html/users_guide/other-type-
 extensions.html#mono-local-binds. Your original program does not typecheck
 because

 - the `GADTs` language flag implies `MonoLocalBinds`
 - `f` does not have a user-supplied type signature
 - `f` cannot be floated to top-level because it refers to `box`, and...
 - `box` cannot be floated to top-level either because it is not bound by a
 `let`

 and therefore the type of `f` is not generalized, and so it cannot be used
 polymorphically by `g`.

 Your four other programs each differ in one of these four features.

 Granted, this is all not very obvious; do you have any suggestion for a
 better error message?

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


More information about the ghc-tickets mailing list