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.