[GHC] #15039: Bizarre pretty-printing of inferred Coercible constraint in partial type signature

GHC ghc-devs at haskell.org
Wed May 16 19:40:47 UTC 2018


#15039: Bizarre pretty-printing of inferred Coercible constraint in partial type
signature
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  patch
        Priority:  normal            |            Milestone:  8.6.1
       Component:  Compiler (Type    |              Version:  8.4.1
  checker)                           |             Keywords:
      Resolution:                    |  PartialTypeSignatures, TypeInType
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Poor/confusing    |  Unknown/Multiple
  error message                      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D4696
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"99f8cc84a5b23878b3b0732955cb651bc973e9f2/ghc"
 99f8cc84/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="99f8cc84a5b23878b3b0732955cb651bc973e9f2"
 Fix #15039 by pretty-printing equalities more systematically

 GHC previously had a handful of special cases for
 pretty-printing equalities in a more user-friendly manner, but they
 were far from comprehensive (see #15039 for an example of where this
 fell apart).

 This patch makes the pretty-printing of equalities much more
 systematic. I've adopted the approach laid out in
 https://ghc.haskell.org/trac/ghc/ticket/15039#comment:4, and updated
 `Note [Equality predicates in IfaceType]` accordingly. We are now
 more careful to respect the properties of the
 `-fprint-explicit-kinds` and `-fprint-equality-relations` flags,
 which led to some improvements in error message outputs.

 Along the way, I also tweaked the error-reporting machinery not to
 print out the type of a typed hole when the type is an unlifted
 equality, since it's kind (`TYPE ('TupleRep '[])`) was more
 confusing than anything.

 Test Plan: make test TEST="T15039a T15039b T15039c T15039d"

 Reviewers: simonpj, goldfire, bgamari

 Reviewed By: simonpj

 Subscribers: rwbarton, thomie, carter

 GHC Trac Issues: #15039

 Differential Revision: https://phabricator.haskell.org/D4696
 }}}

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


More information about the ghc-tickets mailing list