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,
because:
Our module system - or at least our module import/export system - is not
sufficiently expressive.
I would definitely not like to have to use
Monoid.append
Arrow.filter
Monad.filter
Monad.map
...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.
Jules
More information about the Libraries
mailing list