GHC leaks GHC.Prim.~# into type
data A a where
X :: A [xxx]
pattern X' = X
the inferred type of which is
>>> :info X'
pattern X' :: () => t GHC.Prim.~# [xxx] => A t
Casts use unlifted equality as I understand it, but lifted would present a nicer UI:
pattern X' :: () => t ~> [xxx] => A t
pattern X' = X
In my own code this means I get the following monster
pattern MkArr :: () => (GetTy a, GetTy b, GetTy t,
a GHC.Prim.~# 'Sca ('Number 'I32), b GHC.Prim.~# 'Sca a1,
t GHC.Prim.~# 'Arr a1, GetSca a1) => Exp a -> Id -> Exp b -> Exp t
Trac metadata
Trac field | Value |
---|---|
Version | 7.10.3 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |