a = fast_op()
b = long_running_thing()
case c do
^a -> 1
^b -> 2
end
Is very explicit that no matching would happen before both calls have returned, whereas the “sugared” version you suggest might hide this fact and a naive reader would assume that long_running_thing() never gets called when cmatches the result of fast_op().






















