[GHC] #7854: Constrained method type accepted in Haskell 98 mode

GHC ghc-devs at haskell.org
Wed Mar 4 11:58:09 UTC 2015


#7854: Constrained method type accepted in Haskell 98 mode
-------------------------------------+-------------------------------------
        Reporter:  refold            |                   Owner:  thomie
            Type:  bug               |                  Status:  patch
        Priority:  normal            |               Milestone:  7.12.1
       Component:  Compiler (Type    |                 Version:  7.6.3
  checker)                           |                Keywords:  newcomer
      Resolution:                    |            Architecture:
Operating System:  Unknown/Multiple  |  Unknown/Multiple
 Type of failure:  None/Unknown      |               Test Case:
      Blocked By:                    |  typechecker/should_fail/T7854
 Related Tickets:  #10118, #10119    |                Blocking:
                                     |  Differential Revisions:  Phab:D688
-------------------------------------+-------------------------------------

Comment (by Simon Peyton Jones <simonpj@…>):

 In [changeset:"f66e0e695b0377c469fbe877d4850fc0ebca2010/ghc"]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="f66e0e695b0377c469fbe877d4850fc0ebca2010"
 A raft of small changes associated with -XConstrainedClassMethods

 See Trac #7854.  Specifically:

 * Major clean up and simplification of check_op in checkValidClass;
   specifically
      - use checkValidType on the entire method-selector type to detect
        ambiguity
      - put a specific test for -XConstrainedClassMethods

 * Make -XConstrainedClassMethods be implied by -XMultiParamTypeClasses
   (a bit ad-hoc but see #7854), and document in the user manual.

 * Do the checkAmbiguity test just once in TcValidity.checkValidType,
   rather than repeatedly at every level. See Note [When to call
 checkAmbiguity]

 * Add -XAllowAmbiguousTypes in GHC.IP, since 'ip' really is ambiguous.
   (It's a rather magic function.)

 * Improve location info for check_op in checkValidClass

 * Update quite a few tests, which had genuinely-ambiguous class
   method signatures.  Some I fixed by making them unambiguous; some
   by adding -XAllowAmbiguousTypes
 }}}

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


More information about the ghc-tickets mailing list