
6 Sep
2011
6 Sep
'11
5:13 p.m.
On 07.09.2011 00:56, Brandon Allbery wrote:
2011/9/6 Poprádi Árpád
mailto:popradi_arpad@freemail.hu> 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.