My question is: why do you want Eff to be a GADT? It's true that GADTs do not
promote (currently), which is why your first example doesn't work. (It's not to
do with kinds, exactly, but GADTs.) But, I don't quite see a reason for having
a GADT there -- generally, when a GADT is really useful,
Adam
I'm very happy to hear that... good stuff.
I'm under water with ICFP submissions (deadline Sat). Moreover I think it is
clearly too later to put this into 7.8; RC1 is out and I expect RC2 any day.
So I suggest we plan to merge after 7.8 is out.
Are the wiki pages up to date?
Simon,
On 25/02/14 16:18, Simon Peyton Jones wrote:
I'm very happy to hear that... good stuff.
I'm under water with ICFP submissions (deadline Sat). Moreover I think it is
clearly too later to put this into 7.8; RC1 is out and I expect RC2 any day.
So I suggest we plan to merge after
On 25/02/14 16:18, Simon Peyton Jones wrote:
Adam
I'm very happy to hear that... good stuff.
I'm under water with ICFP submissions (deadline Sat). Moreover I think it is
clearly too later to put this into 7.8; RC1 is out and I expect RC2 any day.
So I suggest we plan to merge after
On 2014-02-25 at 18:42:03 +0100, Adam Gundry wrote:
[...]
They are up to date but I'll go over them and tidy them up. Alas, it
doesn't look like Trac supports redirects...
actually, it does, but the plugin was just missing; see
https://ghc.haskell.org/trac/ghc/wiki/WikiMacros#Description
Hi,
Ticket #8776 (https://ghc.haskell.org/trac/ghc/ticket/8776) is about the
output formatting of pattern synonym type signatures. With -dppr-debug,
the problematic signature looks like this:
(base:GHC.Num.Num{tc 2b} t{tv aQa} [sk],
ghc-prim:GHC.Classes.Eq{tc 23} t{tv aQb} [sk]) =
IN this case i *DO* want the GADT. (but i can't express it)
The reason is simple: one type parameter makes for a less complex API to
educate others about than 2 type parameters. And likewise for 3 vs 4. Etc
etc. Its a human factors thing :)
I do agree in this case that my defunctionalized type
Reid Just helped me whack out a solution, it involve something i didn't
even know was possible in haskell
data Eff :: *- * where
Pure :: Eff s
Mut :: s - Eff s
data EVector :: Eff * - * - * where
PureVector :: S.Vector el - EVector Pure el
MutVector :: SM.MVector s e - EVector