GHC HEAD accepts a manual instance decl but not equivalent TH decl
If I try to build the traverse-with-class package with GHC HEAD, I get an error:
Data/Generics/Traversable/Instances.hs:21:1:
Illegal type constructor or class name: ‘c’
When splicing a TH declaration:
instance c_0 a_1 => Data.Generics.Traversable.Core.GTraversable c_0
(Data.Maybe.Maybe a_1)
where Data.Generics.Traversable.Core.gtraverse = \f_2 x_3 -> case x_3 of
Data.Maybe.Nothing -> Control.Applicative.pure Data.Maybe.Nothing
Data.Maybe.Just arg_4 -> (Control.Applicative.<*>) (Control.Applicative.pure Data.Maybe.Just) (f_2 arg_4)
This code used to compile with all the previous versions. Additionally, if I replace the TH splice with the generated instance declaration (with minimal corrections to make all names resolve), it is accepted:
instance c_0 a_1 => Data.Generics.Traversable.Core.GTraversable c_0
(Maybe a_1)
where gtraverse = \f_2 x_3 -> case x_3 of
Nothing -> Control.Applicative.pure Nothing
Just arg_4 -> (Control.Applicative.<*>) (Control.Applicative.pure Just) (f_2 arg_4)
Trac metadata
Trac field | Value |
---|---|
Version | 7.9 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |