Help with cast error
Simon Peyton Jones
simonpj at microsoft.com
Thu Apr 24 07:58:00 UTC 2014
(a ~ b) is a boxed, nominal equality.
(a ~R# b) is an unboxed, representational equality
So it is rightly rejected.
For the boxed/unboxed thing, the paper “practical aspects…” gives more detail. http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/
I think you already know about the nominal/representational distinction.
From: Glasgow-haskell-users [mailto:glasgow-haskell-users-bounces at haskell.org] On Behalf Of Conal Elliott
Sent: 24 April 2014 01:29
To: glasgow-haskell-users at haskell.org; ghc-devs at haskell.org; Richard Eisenberg; Simon Peyton Jones
Subject: Help with cast error
I'd appreciate help with a cast-related Core Lint error I'm getting with a GHC plugin I'm working on:
Argument value doesn't match argument type:
Enc (Vec ('S 'Z) Bool) ~ (Bool, ()) =>
EP (Enc (Vec ('S 'Z) Bool)) -> EP (Bool, ())
~R# (Enc (Vec ('S 'Z) Bool)) (Bool, ())
CO Sub (TFCo:R:EncVec <'Z>_N <Bool>_N)
; (Sub TFCo:R:EncBool, Sub (TFCo:R:EncVec0 <Bool>_N))_R
(I omitted the module prefixes for brevity.) Do I have a role wrong here, or maybe something more fundamental?
I can easily supply more info if it'd help.
Thanks, -- Conal
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Glasgow-haskell-users