I wanted performance improvements to Dhall for my own improvements (a 3000-line file admittedly), but with the intention to create a Dhall language server I think this might become more important - being able to normalize expressions within the editor would be really cool.
One of the notable areas for improvement is interning identifiers prior to doing anything with typechecking or normalization. Basically, this would entail creating an
IntMap storing the user’s identifiers (stored as `Text); then comparisons between identifiers would be much faster - since compilers contain many such comparisons it would hopefully improve performance of normalization a good deal.
I don’t quite have the time to implement this now (though I may be interested in implementing it in the future) but I figured I’d ask: is there any interest in interning identifiers in the Haskell implementation? It would be a big project so I would want buy-in from those who would be reviewing a future pull request.