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