
+1 on the idea.
I wonder if full-blown “import” is overkill for the desired effect. Many languages simply allow you to de-qualify a namespace within a smaller scope. I’m thinking of C++ at the moment: { using namespace std; … }
I think this would be preferable because it would still require that a module declare its “import dependencies” in a known place. I’m imagining chaos from large source files with several dozen import dependencies, but only a few of them defined in the “normal” place.
That said, there is syntactical boon from re-using the “import” keyword. Yet I don’t think it’s a stretch to make inlined imports be constrained by the module’s imports. It’s a simple compiler error: “Foo cannot be imported inline because it is not imported by the module”.
With or without the constraint, this would be an excellent feature.
Elliot
P.S. Now, about placing multiple modules in the same file….
From: Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] On Behalf Of Oliver Charles
Sent: Wednesday, August 5, 2015 10:16 AM
To: Moritz Kiefer; Haskell-cafe
Cc: Haskell Cafe
Subject: Re: [Haskell-cafe] Syntax extension - adding import support to let/where bindings
On Wed, Aug 5, 2015 at 3:12 PM Moritz Kiefer