We definitely want to get into that! Unfortunately it's not completely straightforward. A simple desugaring doesn't work due to our support for intermediate bindings and computations, which we don't want to recompute.
if (x is Left(Foo(y)) or x is Right(Foo(y))) and (y<5 or z>2) then 5
and destructuring Foo(y) only one time and dealing with parentheses?