NB. Is this a bug or "feature"?
NB. Example extracted from another setting (CS 301 Notes; Chapter on data structures)

monad =: 3
define =: :
script =: 0

tally =: #
open =: >
last =: _1&{
drop_last =: _1&}.
display =: 1!:2&2

foo =. monad define script
print =. monad define ('if. 0 = tally y.' ; 'do. ''''' ; 'else. display open last y.' ; 'print drop_last y.' ; 'end.')
print y.
)

NB. foo 1 2 3 ; 'abc'
NB. Produces
NB. abc
NB. |value error
NB. |       print drop_last y.
NB. It seems that an explicit internal definition can't be recursive

