On Tue, Nov 17, 2009 at 1:18 PM, Simon Peyton-Jones
<[email protected]> wrote:
> | What's the status of the TDNR proposal [1]? Personally I think it is a
> | very good idea and I'd like to see it in Haskell'/GHC rather sooner
> | than later. Working around the limitations of the current record
> | system is one of my biggest pain points in Haskell and TDNR would be a
> | major improvement. Thus I wonder if someone is actively working on
> | this proposal?
>
> It's stalled.  As far as I know, there's been very little discussion about 
> it.  It's not a trivial thing to implement, and it treads on delicate 
> territory (how "." is treated).  So I'd need to be convinced there was a 
> strong constituency who really wanted it before adding it.

Well, implementing certain protocols (e.g. based on JSON, like Bayeux
[1]) in a type-safe way requires lots of records and many of these
records have similar selectors, e.g. channel. Currently one can only
have a nice interface to such a protocol by using type classes and
creating lots of instance declarations, which is a lot of boilerplate
to be written. This would be much easier with TDNR, than with
module-scoped record selectors. Also the hack to use different modules
is further complicated by the fact that at least GHC insists on having
each module in a separate file.

As pointed out by others one may choose a different string instead of
"." like "->"  if this makes the implementation of TDNR feasible. But
some mechanism to have some sort of scoped record selectors or TDNR is
needed in my opinion.

Many thanks,
Levi

--------
[1] http://svn.cometd.org/trunk/bayeux/bayeux.html

>
> I've added an informal straw poll to the bottom of [1] to allow you to 
> express an opinion.
>
> Also I'm not very happy with the "stacking operations" part, and I'd like a 
> better idea.
>
> Simon
>
>
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to