Can we offer ~ without GADTs or type families?

Edward Kmett ekmett at
Fri Aug 5 18:27:19 UTC 2016

TypeOperators as a language extension doesn't require a whole lot on the
behalf of implementors today. They basically just have to add fixity
handling to types. This is a no-brainer for a compiler implementor. It is a
simple elaboration and some extra cases to deal with in their parser. The
typechecker changes are obvious.

Asking them to do all the things to support 'some typechecking details'
that aren't entirely trivial to support that same extension is an awful big
ask! OutsideIn(X) is a big paper to read, let alone implement, and the only
compiler to even try handling (~) today is GHC.


On Fri, Aug 5, 2016 at 2:15 PM, Ryan Scott < at> wrote:

> Hi David,
> > Could we get a separate LANGUAGE pragma just for equality constraints?
> I think we should, and I don't think we'd even need to introduce a new
> pragma, since there's already a perfectly good one: -XTypeOperators!
> After all, there's nothing really that special about (~) other than
> some typechecking details. A fix to Trac #9194 [1] would give us this.
> Ryan S.
> -----
> [1]
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list