Maybe I've misunderstood some APL2 corner case, but the behavior of the attached program seems wrong.
⍝! ∇z←false z←0 ∇ ∇test1 →(false)/0 'foo' →false/0 'bar' ∇ test1 ∇test2 'check1' (0≡false) 'check2' (0≡(false)) 'case 1' (0/0) 'case 2' (false/0) 'case 3' ((false)/0) ∇ test2