Some of your comments seem to not fully recognize the name-spacing (plus simple type resolution) aspect of this proposal that I probably didn't explain well enough. Or maybe I don't understand your comments.<div><br>
<div>For record.field, field is under the record's namespace. A namespace (from a module or under the new system a record), cannot export conflicting names, and there this system prevents the importer from every having a conflict with a record field name because the field is still under the record's namespace when imported. The type system must resolve the type of the record, and generally the field cannot contribute to this effort.</div>
<div><br></div><div>Otherwise the comments have some good ideas and details that I will have time to look over in more detail and incorporate into the wiki later.</div><div><br><div class="gmail_quote">On Mon, Jan 9, 2012 at 6:07 PM, Greg Weber <span dir="ltr"><<a href="mailto:greg@gregweber.info">greg@gregweber.info</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><br><div class="gmail_quote"><div class="im">On Mon, Jan 9, 2012 at 2:22 PM, Isaac Dupree <span dir="ltr"><<a href="mailto:ml@isaac.cedarswampstudios.org" target="_blank">ml@isaac.cedarswampstudios.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
You mean this wiki page, right?:<br>
<a href="http://hackage.haskell.org/trac/ghc/wiki/Records/NameSpacing" target="_blank">http://hackage.haskell.org/<u></u>trac/ghc/wiki/Records/<u></u>NameSpacing</a><div><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
That is, there are no fundamental<br>
objections to the implementation of this records implementation.<br>
</blockquote>
<br></div>
I think that might be overly optimistic... I think there's a risk that SPJ finds an irritating complication to type inference & the rest of us aren't type-system-savvy enough to continue trying to guess at that :) But I think you're referring to whether we object to ad-hoc overloading of record field names (neither parametric nor class-based polymorphism), if no difficulties crop up. Some of the concerns on <a href="http://www.haskell.org/haskellwiki/TypeDirectedNameResolution" target="_blank">http://www.haskell.org/<u></u>haskellwiki/<u></u>TypeDirectedNameResolution</a> apply -- I'm not sure to what extent, but address those concerns rather than require those people to repeat themselves again! :)<br>
<br>
(If we dodge all those obstacles, well, a better record system is better!)<br>
<br></blockquote><div><br></div></div><div>This shouldn't complicate type inference (other than the fact that we must avoid a left-right bias?) because the record field names are not overloaded - instead it puts some burden back on the user to add more type annotations. The difficult aspect of TDNR was that it was assuming overloading - although there is really no reason why it can't instead assume name-spacing. TDNR and this record proposal share many of the same syntax issues you list. Thanks for the detailed feedback! I am travelling right now, will review when I get a chance.</div>
<div><br></div><font color="#888888"><div>Greg Weber</div></font></div><br>
</blockquote></div><br></div></div>