Allow free variables in reifyInstances
When I say
{-# LANGUAGE TemplateHaskell #-}
module Bug where
import Language.Haskell.TH
$( do insts <- reifyInstances ''Eq [ListT `AppT` VarT (mkName "a")]
runIO $ putStrLn $ pprint insts
return [] )
I get
Bug.hs:7:4:
Not in scope: type variable ‘a’
In the argument of reifyInstances: GHC.Classes.Eq [a]
But, I wanted the declaration for instance Eq a => Eq [a]
. The error message isn't wrong, exactly -- a
really isn't in scope -- but I think we can do better by just treating variables as fresh.
Trac metadata
Trac field | Value |
---|---|
Version | 7.8.2 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Template Haskell |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |