On 07.09.2011 00:56, Brandon Allbery wrote:
2011/9/6 Poprádi Árpád <[email protected]
<mailto:[email protected]>>
updateData1 :: X -> MonadicEnv()
updateData1 d = do; env <- get; put env {data1 = d}
> updateData1 d = modify (\r -> r {data1 = d})
But there is, sadly, no eta-reduced version of record update to make the
"\r -> r ..." boilerplate go away; recognition of the syntax requires an
expression before the braces. (Consider the ambiguity of the
eta-reduced expression "modify {data1 = d}".) Also, and much more
annoyingly, "data1" must be constant.
In principle ambiguity could be resolved with a slash:
modyfy \{data = d}
But that's from land of hypothetical language extension and dog headed
people.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe