Apologies for the delay here, holidays and then a large backlog...
As a reminder, this proposal would let you use qualified names like Data.Trace.trace without adding an explicit import.
I've reviewed the whole comment section of the proposal, but I'm finding it difficult to arrive at a clear recommendation. Some points:
- There's a certain amount of convenience enabled by the extension, for sure. And other languages (OCaml, Rust) have a similar feature.
But
- There are compile-time performance implications that are as-yet unmeasured. I've asked for more data on this in the github thread.
- A strong argument against (in my opinion) is that tooling could do this automatically, rendering this extension redundant. HLS doesn't currently insert imports for qualified names automatically, but couldn't it? Other language servers do this kind of thing (e.g. Python)
- The behaviour with respect to instances is a little too implicit. Removing a qualified identifier might eliminate an implicit import and thus hide some instances, causing the compiler to reject the module.
I'm personally leaning towards rejection, but I don't feel strongly enough to actually recommend that. What do others think?
Cheers
Simon