| 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 _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell