I'm doing basic transformation of expressions like: ``` and [a, b, c] ``` to ``` if a then (if b then c else False) else False ``` And similar for or. So I transform the haskell code. I need it for optimisation of Plutus execution which features different model of execution although it's valid haskell code. @Richard thanks for the detailed answer! I could achieve something for my own language embeded in QQ but it was because I had my own type-checker for that and kept the locations. In haskell source code I could not find that and now I know that it's intentional. чт, 11 нояб. 2021 г. в 03:19, David Fox <dsf@seereason.com>:
I'd like to know more about what you are doing, I feel like I've set out to do something similar in the past and ended up going a different way.
On Sat, Nov 6, 2021 at 2:51 AM Anton Kholomiov <anton.kholomiov@gmail.com> wrote:
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? _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.