We could support "removed primitives" by establishing a mechanism where those primitives call into the J standard library. For example, perhaps each such primitive could have an implementation which looks for a specific name in the jlang locale.
Since this is "language" rather than "user code" we would want to make this mechanism somewhat rigid. In particular, once these definitions have been established in a J session, they should not be changed. (Though for performance reasons it might eventually make sense to define an "autoload" mechanism where the definition itself is allowed to require a library just once.)
We could support "removed primitives" by establishing a mechanism where those primitives call into the J standard library. For example, perhaps each such primitive could have an implementation which looks for a specific name in the jlang locale.
Since this is "language" rather than "user code" we would want to make this mechanism somewhat rigid. In particular, once these definitions have been established in a J session, they should not be changed. (Though for performance reasons it might eventually make sense to define an "autoload" mechanism where the definition itself is allowed to require a library just once.)