There is an issue with recursive functions using the fun syntax, e.g.
;-) fun recurse( n ) => recurse( n ); endfun;
MISHAP : Could not find the definition for this variable
NAME : recurse
ORIGIN : origin
LINE NO. : 1
PHASE : Compile
Resetting input and resuming execution
This occurs because no variable with the name "recurse" exists inside the body of the function.
We should consider inserting an automatic local variable with the function name, bound to the function. This should be handled in a similar way to the functions arguments.