Skip to content
  • Simon Peyton Jones's avatar
    A raft of small changes associated with -XConstrainedClassMethods · f66e0e69
    Simon Peyton Jones authored
    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
    f66e0e69