
+1 for orthogonal -XDotPostfixApply.
I'm in the absolutely-love-using-dot-for-records camp, but I also like "foo
s1.toUpper s2.toUpper".
We're already so lazy about parentheses -- e.g. the non-haskellers I show
code to are always appalled at $ ;-) -- and this helps scrap more parens!
On Mon, Jul 1, 2013 at 8:53 AM, Adam Gundry
Hi all,
I have amended the plan [1] as a result of the ongoing discussion, including leaving the syntax alone for the time being, so record projections are written prefix.
Regarding Barney's suggestion of field declarations:
All this extra syntax, whether it's ., #, or {} seems very heavy for a
On 01/07/13 10:50, Barney Hilken wrote: problem described as very rare.
Why not simply use a declaration
field name
whose effect is to declare
name :: r {name ::t} => r -> t name = getFld
unless name is already in scope as a field name, in which case the declaration does nothing?
This makes sense. I guess the question is whether a new declaration form is justified. The implementation is slightly more subtle than you suggest, because we don't know whether `name` will be brought into scope as a field later, in which case the definition would clash with the actual field. It should be equivalent to defining
data Unused { name :: () } data Unused2 { name :: () }
(twice so that there is always ambiguity about a use of `name`).
Adam
[1]
http://hackage.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/Plan
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users