Consider the following:
assert (x : Bool)-> (case x of { `true -> < ?Int > , `false -> < !Int > })
= (x : Bool)-> < case x of { `true -> ?Int , `false -> !Int } >
: Type
This is rejected so far but I wish we accept by checking that setting x to true andfalse leads to the resulting terms to be equivalent.