Simon Peyton Jones via ghc-devs writes:
> Check out
> https://ghc.haskell.org/trac/ghc/wiki/Status/GHC-8.2.1
>
> There are several tickets you own in highest or high prio. Notably #12919
> (an outright bug). And #12670, #13160, #13202
>
> BEN: yell for whatever help
o:r...@cs.brynmawr.edu]
Sent: 01 February 2017 13:54
To: Simon Peyton Jones <simo...@microsoft.com>
Cc: ghc-devs@haskell.org
Subject: Re: D2038: [WIP] TysPrim: Generalize kind of (->)
On Feb 1, 2017, at 3:34 AM, Simon Peyton Jones
<simo...@microsoft.com<mailto:simo...@microsoft.c
> On Feb 1, 2017, at 3:34 AM, Simon Peyton Jones wrote:
>
> Who is acting there. Just Ben? Or are there bits Richard needs to help
> with?
Ben has done the real heavy lifting, with me opining on this bit or that. From
what Ben says, it's very close.
There is a
Ben? Or are there bits
Richard needs to help with?
As to 4 onwards I still want to talk to you about roles.
Simon
From: Richard Eisenberg [mailto:r...@cs.brynmawr.edu]
Sent: 01 February 2017 01:19
To: Simon Peyton Jones <simo...@microsoft.com>
Cc: ghc-devs@haskell.org
Subject: Re: D2038
Richard Eisenberg writes:
> I had another thought on my drive home: why do we need to sort out
> Constraint v Type for 8.2? I have the patch, and it's essentially all
> set. But it weakens equality in a way that's troublesome for D2038 and
> introduces heterogeneous axioms,
I had another thought on my drive home: why do we need to sort out Constraint v
Type for 8.2? I have the patch, and it's essentially all set. But it weakens
equality in a way that's troublesome for D2038 and introduces heterogeneous
axioms, which are strange, ill-understood beasts. And I don't
Richard Eisenberg writes:
snip
>
> I think the Right Answer is to get rid of newtype-classes & fix reify, and
> I’m worried that anything short of that will fail catastrophically at some
> point. Otherwise, it’s patches on top of patches.
>
> I don’t think there is
> On Jan 31, 2017, at 5:41 PM, Simon Peyton Jones wrote:
>
> But that can only happen if `(->)` has suitable roles.
> What if it doesn’t?
The “correct” roles for (->) of the kind you gave is `nominal nominal nominal
nominal representational representational`. That is,
Replying by email because I'm on a train.
Simon
Huh. Put otherwise, your point is this. Suppose we
have the following kind for `(->)`:
(->) :: forall v1 v2 r1 r2. TYPE v1 r1 -> TYPE v2 r2 -> Type
To coerce from
(C a -> Int) to (a -> Int)
we'd have to cough up a coercion `g`:
g