[Haskell] Per-type function namespaces (was: Data.Set whishes)

Simon Peyton-Jones simonpj at microsoft.com
Thu Mar 4 10:03:38 EST 2004


| So there is no sub-typing, no row polymorphism, no attempt to give
| 	f r = r.x
| a fancy type that makes f applicable to any record with an x field.
| 
| On the other hand, there is also no problem with many records having
the
| same field name either, which is the problem we started with.  There
are
| no implicitly-defined record selectors either: you have to use pattern
| matching for that.

Andreas says:

| Actually, #l is just syntactic sugar for (\{l=x,...}->x), which
implies
| that you might need type annotations.


Yes I was wrong to say that there are no implicitly-defined record
selectors; (#l r) is exactly that.  Syntactically I'd prefer (r.l); but
regardless, it's a syntactic construct distinct from function
application, which must be monomorphic.  Yes, that's a kind of
interaction between binding and type system (of the kind I objected to)
but a very weak and well-behaved kind of interaction. 

Simon


More information about the Haskell mailing list