The workings of locked functions are supposed to be completely concealed
from the user, and if an error appears in one, it is considered to have
occurred in the line invoking the locked function, as if it were a
primitive.
We can see this in APL2.
∇FOO
[1] BAR⍫
∇BAR
[1] →1∇
FOO
INTERRUPT
FOO
^
In GNU APL, however, we can get suspensions in locked functions and the
things they call on our state indicator.
FOO
^CATTENTION
BAR[1] →1
^
)si
BAR[1]
FOO[1]
⋆
I was wondering what the standard says about this, as it is definitely
contrary to the APL2 documentation.