[Haskell] Extensible records: Static duck typing

Barney Hilken b.hilken at ntlworld.com
Wed Feb 6 13:02:31 EST 2008


> 2. List the possible features that “records” might mean.  For example:
>
> ·         Anonymous records as a type.  So {x::Int, y::Bool} is a  
> type.  (In Haskell as it stands, records are always associated with  
> a named data type.
>
> ·         Polymorphic field access.  r.x accesses a field in any  
> record with field x, not just one record type.
>
> ·         Polymorphic extension
>
> ·         Record concatenation
>
> ·         Are labels first-class?
>
> ·         etc
>
> Give examples of why each is useful.   Simply writing down these  
> features in a clear way would be a useful exercise.  Probably some  
> are “must have” for some people, but others might be optional.
>
This is what I was trying to do with the wiki page. I stopped because  
the only other contributor decided he could no longer contribute, and  
I felt I was talking to myself. If we want to be rational about the  
design, we need real examples to demonstrate what is genuinely useful,  
and I don't have that many of them.

Barney.



More information about the Haskell mailing list