Thank you for your comments. What I did was strictly replace verbs with a named verb with the same rank as the primitive and also defined an inverse making them functionally equivalent. So modifiers treat them just like the primitive, except for fit (!.) and any optimization. All rules for tacit and modifiers still apply. I tested those statements you mentioned and they seem to work properly. Since they are named verbs, including (*), J cannot know that it is supposed to be multiplication or whatever. So optimization you mentioned in J is not done. And it is not necessary to worry about tacit and other modifier considerations.
Yes, if optimization is done before the type of noun is encountered, particularly multiplication, then it would be a real problem. I guess that for now at least, the best approach for me is to name the verbs and use them instead of the primitives. It is not hard to enter a statement, replace the primitive verbs with the appropriate named verbs, then execute the modified statement. And in some other possible things to look into may have even more restrictions than quaternions, where even addition may not communicate. But it is nice to be able to enter regular J statements and have them support quaternions. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
