
This all seems to be solidifying nicely. From my perspective, I didn't really like the original proposal, but am now in favor of where it has evolved -- with all imports declared at the top, and then adding `import ...` to the syntax of local declarations. I'm not sure where the trouble around instances comes from in this idea, though. Even if a module is imported qualified, all of its instances are available anywhere, and I don't see that changing here. As Edward said, this would just be a small change in the renamer.
Is it time to make a wiki page and post a feature request? I think so.
Thanks!
Richard
On Aug 7, 2015, at 4:26 AM, Oliver Charles
On Thu, Aug 6, 2015 at 6:19 AM Vlatko Basic
wrote: The old Turbo Pascal keyword "with" (used for records) popped up in my mind. It's rather clear for namespace resolution and would look something like this: with Data.ByteString $ do map f ...
with Prelude $ do map f ...
or more explicit
withImport Data.ByteString $ do ....
One problem with this is that it forces an ordering on statements. Sometimes you might want to push the imports to the side, by moving them to a where clause, rather than a let binding. I'm hoping that whatever we propose would allow you to do this. That's why I think the syntax construct needs to be something that appears at the time of doing bindings.
ocharles _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe