fourmolu-0.5.0.0: data/examples/declaration/value/function/record/record-dot-out.hs
{-# LANGUAGE OverloadedRecordDot #-}
{-# LANGUAGE OverloadedRecordUpdate #-}
data Foo = Foo {bar :: Foo}
mfoo = fmap (.bar) $ Nothing
bar = (Foo 1).bar
fooplus f n = f {foo = f.bar + n}
nestedFoo f = f.bar.bar.bar.bar.bar
nestedFooUpdate f = f {bar.bar = f.bar} <> f {bar.bar.bar.bar}
operatorUpdate f = f {(+) = 1}