tshm
tshm copied to clipboard
Compiler shouldn't always print expression parentheses
e.g. given input:
declare const f: (g: (() => void)) => void
We output:
f :: ((() -> void)) -> void
But should actually output (as we would if there weren't an expression grouping in the input):
f :: (() -> void) -> void
Or for a slightly more egregious example the following is output identically, needless parentheses intact:
type X = (((1)))
Is it possible to address this without delving into correctness checking?