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

Anton Kholomiov anton.kholomiov at gmail.com
Sun Nov 21 09:25:34 UTC 2021


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 at 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 at 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.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20211121/dc9fed1a/attachment.html>


More information about the Haskell-Cafe mailing list