Re: [Haskell-cafe] Locate errors in TH for Haskell code

Dear Anton,
I have a task to convert one Haskell expression to another. And I'd like to report errors properly.
[interpret| -- error reported here valid haskell code invalid code <- error |]
I can parse it with haskell-src-exts or haskell-src-meta. but if I have error in the code (type-check) error is positioned on the first line of the QQ-expression.
Do you know is it possible to report error at the line where it has happened or to keep original source code location in the Exp.
In the function I do transformation Exp -> Exp.
Or maybe there is a better way to do it instead of QQ?
QQ is a good way. The simplest way would be to use `Language.Haskell.TH.location :: Q Loc` [1] and update it with the `Language.Haskell.Exts.SrcLoc.Loc` you get from `haskell-src-exts`[2]. [1] https://hackage.haskell.org/package/template-haskell-2.18.0.0/docs/Language-... [2] https://hackage.haskell.org/package/haskell-src-exts-1.23.1/docs/Language-Ha... Note that [1] is available since template-haskell version 2.8.0.0. -- Best regards MichaĆ
participants (1)
-
Michal J Gajda