darcs patch: Added list operations for arrows

Jules Bean jules at jellybean.co.uk
Wed Nov 5 04:48:17 EST 2008

Wolfgang Jeltsch wrote:
> Another point is that filterA uses just a single letter for “arrow”.  This 
> concept quickly leads to ambiguities.  For example, in mappend, the “m” 
> stands for “monoid” while in msum, it stands for “monad”.  Something like 
> filterArrow would have the disadvantage that it is longer.  With qualified 
> imports, the user of the library can decide whether to use a single letter 
> (A.filter) or something more descriptive (Arrow.filter).

I would not like this. Let me first say that I *do* understand your 
point. It is certainly ugly to use these funny adhoc namespacing 
techniques. But I think it's less ugly than the alternatives we have, 

Our module system - or at least our module import/export system - is not 
sufficiently expressive.

I would definitely not like to have to use


...just on grounds of verbosity. Too many characters = ugly code.

But the alternative - to use short module aliases - does not scale well. 
I need to add appropriately qualified import statements to every single 
module in my project. We can't reexport qualifications.


I'm interested in suggestions on how we could make our namespace 
management better so that this problem is more manageable.


More information about the Libraries mailing list