Open
Description
Given the following example:
type a = {"name": string, "age": int}
type b = {"name": string}
let v: a = {
"name": "Anton",
"age": 35,
}
let foo = (arg: b) => {
Js.log("Hi" ++ arg["name"])
}
foo(v :> b)
When pretty-printing the code, the coercion expression will be wrapped with parentheses: foo((v :> b))
.
Expected behavior: It should print the expression the same way as it was defined; only preserve parentheses if the operation was originally wrapped in parentheses.