Hello,

On Fri, Apr 25, 2008 at 3:00 PM, Simon Marlow <[EMAIL PROTECTED]> wrote:
> ...
>  It would be slightly strange if record construction required the
> unqualified name, but record update required the qualified name, when the
> field name is only in scope qualified.  So that indicates that we should
> allow either form in record construction (and instance declaration), i.e.
> Claus's suggestion + DisambiguateRecordFields.

My preference would be to disallow qualified names in: (i) the method
names of instances, (ii) record construction (C { l = e }), (iii)
record patterns (C { l = p }).  I think that this is consistent, and
it easy easy to see what the labels refer to: in the case of
instances, the method belongs to the class in question (which can be
qualified), and in the case of records the label belongs to the
specified constructor (which can also be qualified).

As Simon points out, record updates still require qualified names but
I don't think that there is an inconsistency there because I think of
record updates as the application of a (oddly named) function, just
like record selection is the application of a (normally named)
function.  Therefore, it makes sense that we may have to use qualified
names to disambiguate which function we are referring to.

-Iavor
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to