
Hi Konstantine, On 24/01/15 11:55, Konstantine Rybnikov wrote:
May I suggest something for a syntax (as an option, sorry if it's silly or not related)? I really don't like neither "@" or "#" because they seem too hacky, meanwhile GHC already has an "accessor" syntax with braces { and }, so, might it be an option to have something like:
``` data Foo = Foo { val :: Int } data Bar = Bar { foo :: Foo }
main = do let bar = Bar (Foo 10) print bar{foo{val}} let bar' = bar{foo{val}=10} return ()
```
I think this syntax is 100% understandable for a "newbie". Not sure how is it related to lenses though.
What do you think?
Thanks for thinking about this problem (we certainly need fresh ideas!) but unfortunately this syntax is already taken by NamedFieldPuns, which interprets foo{val} ==> foo{val = val} so I don't think we can easily use it. I'm still keen to find a better solution than # or magic imports, though! Adam -- Adam Gundry, Haskell Consultant Well-Typed LLP, http://www.well-typed.com/