[Haskell-cafe] Syntax extension - adding import support to let/where bindings
mikael.brockman at gmail.com
mikael.brockman at gmail.com
Thu Aug 6 10:16:51 UTC 2015
"Edward Z. Yang" <ezyang at mit.edu> writes:
> This should be a relatively straightforward extension to the renamer.
> But like others have mentioned, you should still be required to import
> anything you're going to use locally at the top-level. This requirement
> makes it clear how instance visibility and dependency analysis should be
> done. Plus, you probably want this anyway:
>
> import qualified My.Qualified.DSL.CSS as CSS
>
> ... where import CSS
>
I'm strongly in favor of something like this proposal.
Single-letter names for qualified modules seems to indicate the problem.
Also, operators. Qualified operators are very ugly; unqualified
operators are very confusing; explicit operator imports are tedious.
So, I would love this, for example:
| let import LensOperators in
| (x ^%+ y <<++~ z) ^_^ k
I'm often torn between unqualified and qualified imports.
Qualified references are noisy and scary; unqualified references are
hard to track. Block-level imports clarify references without noise.
So, +1!
-- Mikael Brockman
More information about the Haskell-Cafe
mailing list