hackage's type-level-0.2.4 fails to compile
Attached trimmed-down dependencyless archive. Steps to reproduce:
$ tar -xzf type-level-0.2.4.tar.gz
$ ghci -hide-all-packages -package=base -package=template-haskell Data/TypeLevel.hs
The error on 7.8.2 and in -HEAD is:
[6 of 8] Compiling Data.TypeLevel.Num.Ops ( Data/TypeLevel/Num/Ops.hs, interpreted )
Data/TypeLevel/Num/Ops.hs:90:10:
Illegal instance declaration for ‘Succ' (x, x) (x, x) D0 D0 True’
The liberal coverage condition fails in class ‘Succ'’
for functional dependency: ‘yh yl yz -> xh xl’
Reason: lhs types ‘D0’, ‘D0’, ‘True’
do not jointly determine rhs types ‘(x, x)’, ‘(x, x)’
In the instance declaration for ‘Succ' (x, x) (x, x) D0 D0 True’
...
Typechecked fine on ghc-7.6.3
[1 of 8] Compiling Data.TypeLevel.Num.Reps ( Data/TypeLevel/Num/Reps.hs, interpreted )
[2 of 8] Compiling Data.TypeLevel.Num.Sets ( Data/TypeLevel/Num/Sets.hs, interpreted )
[3 of 8] Compiling Data.TypeLevel.Num.Aliases.TH ( Data/TypeLevel/Num/Aliases/TH.hs, interpreted )
[4 of 8] Compiling Data.TypeLevel.Num.Aliases ( Data/TypeLevel/Num/Aliases.hs, interpreted )
Generating and compiling a zillion numerical type aliases, this might take a while
[5 of 8] Compiling Data.TypeLevel.Bool ( Data/TypeLevel/Bool.hs, interpreted )
[6 of 8] Compiling Data.TypeLevel.Num.Ops ( Data/TypeLevel/Num/Ops.hs, interpreted )
[7 of 8] Compiling Data.TypeLevel.Num ( Data/TypeLevel/Num.hs, interpreted )
[8 of 8] Compiling Data.TypeLevel ( Data/TypeLevel.hs, interpreted )
Ok, modules loaded: Data.TypeLevel, Data.TypeLevel.Num, Data.TypeLevel.Bool, Data.TypeLevel.Num.Reps, Data.TypeLevel.Num.Aliases, Data.TypeLevel.Num.Sets, Data.TypeLevel.Num.Ops, Data.TypeLevel.Num.Aliases.TH.
*Data.TypeLevel>
I have failed to decipher an error message, but looks like it tries to instantiate a thing it should not.
My apologies if it's not-a-bug.
Trac metadata
Trac field | Value |
---|---|
Version | 7.8.2 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |