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/ _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs