Records in Haskell

Claus Reinke claus.reinke at talk21.com
Tue Nov 8 21:48:03 CET 2011


> My stance is that it is possibly better if we do not try to include a
> one-size-fits-it-all record system into the language, but if the
> language provided support for basic things that almost all record 
> system *libraries* would need. 

Agreed. To the extent that such libraries could be improved
by sugar, a general solution for such library-specific sugar
might be sought. But the record libraries tended to be quite
useful, modulo (of the top of my head, probably incomplete):

- first-class labels
    I wonder whether the recent lifting of values into the 
    type-level (towards typed types) offers sufficient 
    convenience? Do they address the sharing issue?
    Haven't had the time to read yet;

- soundness
    All the type-class based libraries work in the grey area
    of things that GHC allows for pragmatic reasons and that
    Hugs disallowed for soundness reasons; the success of
    GHC shows that Hugs was too careful, but I'd prefer if
    GHC either acquired safe features that could replace the 
    current interplay of FDs and Overlapping Instances, or
    if someone proved the set of features in use safe;

- optimization
    there is no reason why record libraries need to be slow
    to run, and the compilation time increases needed to
    make it so might be optimized away, too; but someone
    needs to do the work, or record field selection will
    -naively and in overloaded style- involve linear lookup;

If these were to be addressed, record libraries would be
more widely acceptable than they are today (though I
recommend playing with the ones that exist, and reporting
on their strengths and weaknesses in practice); initially, 
everyone would use their favorite, but I am hopeful that 
a common API would emerge eventually, from use.

We haven't had any luck agreeing on a common API 
before use, and none of the many good proposals have 
managed to sway everyone, which is why I agree on not 
settling on a single design just yet - just pave the road 
for wider adoption of record libraries).

Back to the side-line for me;-)
Claus

 



More information about the Glasgow-haskell-users mailing list