TH typechecking regression
The 7.0 branch (and HEAD) behaves differently to 7.0.1 on this modules:
{-# LANGUAGE TemplateHaskell #-}
module Foo where
import Language.Haskell.TH
x :: Int
x = let args = [| show $(varE (mkName "x")) |]
in undefined
- 0.1 accepted it, while we now get:
Foo.hs:7:19:
Ambiguous type variable `a0' in the constraint:
(Show a0) arising from a use of `show'
Probable fix: add a type signature that fixes these type variable(s)
In the Template Haskell quotation [| show ($(varE (mkName "x"))) |]
In the expression: [| show ($(varE (mkName "x"))) |]
In an equation for `args': args = [| show ($(varE (mkName "x"))) |]
This affects these packages:
CCA
Printf-TH
grammar-combinators
hacanon-light
hamlet
rowrecord
th-lift
web-routes-quasi
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.0.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | highest |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |