[GHC] #15546: Display coaxiom branch incompatibilities in GHCi
GHC
ghc-devs at haskell.org
Mon Aug 27 22:04:44 UTC 2018
#15546: Display coaxiom branch incompatibilities in GHCi
-------------------------------------+-------------------------------------
Reporter: mniip | Owner: mniip
Type: feature request | Status: new
Priority: normal | Milestone: 8.6.1
Component: GHCi | Version: 8.4.3
Resolution: | Keywords: TypeFamilies,
| GHCi
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D5097
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by goldfire):
Compatibility is a user-facing issue. See
[https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html
#compatibility-and-apartness-of-type-family-equations the manual]. Here is
an example:
{{{#!hs
type family b1 && b2 where
True && b2 = b2
False && b2 = False
b1 && True = b1
b2 && False = False
b && b = b
}}}
{{{
λ> :kind! forall b. b && True
forall b. b && True :: Bool
= b
}}}
Note that the first two equations unify with the target `b && True`.
Normally, this means that any later equations wouldn't apply. But because
the first two equations are both compatible with the third, we don't let
the fact that they unify hold up reduction via the third equation, as we
can see.
I thus agree that the ability to print out incompatibilities is sometimes
helpful for users, not just implementors.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15546#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list