update = \o -> o { foo = "Foo" } replace = \o -> case o of { foo = "Foo" } -> o { foo = "Bar" } { foo = "Bar" } -> o { bar = "Baz" } o -> o