AA
Size: a a a
AA
AA
foo {- явно называется как поле -} <- bar
return $ Baz{..}
AV
AV
JS
AV
AA
MK
AA
foo <- bar
return $ Baz{foo}
foo <- bar
return $ Baz{foo = foo}
AA
AA
MK
AV
AA
AA
MK
foo <- bar
return $ Baz{foo}
foo <- bar
return $ Baz{foo = foo}
λ> data Foo = Foo { foo :: Int, bar :: String }
λ> x = let foo = 42; bar = "hello" in Foo foo bar
<interactive>:3:9: warning: [-Wname-shadowing]
This binding for ‘foo’ shadows the existing binding
defined at <interactive>:2:18
<interactive>:3:19: warning: [-Wname-shadowing]
This binding for ‘bar’ shadows the existing binding
defined at <interactive>:2:30
MK
AV
MK
MK