[GHC] #15710: Should GHC accept a type signature that needs coercion quantification?
GHC
ghc-devs at haskell.org
Fri Oct 5 23:25:40 UTC 2018
#15710: Should GHC accept a type signature that needs coercion quantification?
-------------------------------------+-------------------------------------
Reporter: simonpj | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.6.1
Resolution: | Keywords: TypeInType
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
In #14648 you argued that `(t1 ~# t2)` should not be a constraint, should
not return True to `isPredTy`, and should not be an invisible parameter,
implicitly instantiated at call sites.
Here you seem to be arguing the exact opposite!
I'm uncomfortable with forcing the the user to deal with both `(~)` and
`(~#)`; I wanted the latter to be an implementation detail. Even putting
it in a constraint tuple like `f :: (Num a, a ~ b) => blah` is problematic
if `a~b` is unlifted/unboxed.
Our "all constraints are boxed" story was working perfectly well right up
to this, when we add coercion quantification. But I don't see a way to
reconcile it with coercion quantification. Alas.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15710#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list