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 |