Hi folks,

rather than discussing about which operator symbol to use for record access, 
which is really a question of personal taste we should try to seriously 
discuss the proposals and get to a solutions! 

We all seem to agree that records are broken in Haskell. In order to fix that 
we need a new and most probably incompatible solution. However, I think the 
new solution should go in a new version of the Haskell standard (among other 
things :-) ). 
I would strongly disadvice to try to stick with the old system and improve it.
Just because there are lots of different opinions we should still try to find 
a reasonable solution soon.

Desite the minor problem of '.' that dominated the discussion so far, what are  
the REAL offences against Simons proposal [1] (denoted as SR in the 
following)? 
To me it sounds like a very reasonable starting point. 
Which other proposals exist?

I quote David Roundy's list of problems [2] with a short annotation whether SR 
solves them:

1. The field namespace issue.
        solved by not sharing the same namespace with functions 
2. Multi-constructor getters, ideally as a function.
        not solved. only possible by hand
        - As stated by Wolfgang Jeltsch [3]  another datatype design might be 
better
        - I can image a solution is within SR example:
>        data Decl = DeclType { name :: String, ... }
>                          | DeclData { name :: String, ... }
>                          | ...
>       d :: Decl 
in addition to 
>       d.DeclType.name 
>       d.DeclData.name 
we provide (only if save, see 3.)
>       d.name 

3. "Safe" getters for multi-constructor data types.
        not supported as it is
        - with the above suggestion it could be possible (don't know if 
desireable)

4. Getters for multiple data types with a common field.
        - solved with contrains 
        >  getx :: (r <: { x :: a }) => r -> a

5. Setters as functions.
        doesn't seem to be supported, or I don't see it right now.

6. Anonymous records.
        Supported

7. Unordered records.
        I don' t understand it. 

points added from me:
8. Subtyping
        Supported, quite nicely

9. higher order versions for selecting, updateing ... [4]
        not supported
        seems important to me, any solutions?

Regards 
        Georg   

[1] http://research.microsoft.com/~simonpj/Haskell/records.html
[2] http://www.haskell.org//pipermail/haskell-cafe/2005-November/012226.html
[3] http://www.haskell.org//pipermail/haskell-cafe/2005-November/012227.html
[4] http://www.haskell.org//pipermail/haskell-cafe/2005-November/012162.html

Am Donnerstag, 17. November 2005 19:08 schrieb Dimitry Golubovsky:
> Sebastian Sylvan wrote:
> >Personally I think that the dot is way to good of a symbol to be
> >"wasted" on function composition. I mean, how often do you really use
> >function composition in a way which doesn't obfuscate your code? I use
> >($) way more often than (.). Some people do use it more often than I
>
> I found it useful to use (mainly for debugging purposes)
>
> mapM (putStrLn . show) <some list>
>
> if I want to print its elements each on a new line.
>
> --
> Dimitry Golubovsky
>
> Anywhere on the Web

-- 
---- Georg Martius,  Tel: (+49 34297) 89434 ----
------- http://www.flexman.homeip.net ---------

Attachment: pgpuroWJrVcBG.pgp
Description: PGP signature

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

Reply via email to