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

Reply via email to