The remaining degree of freedom is function application. Issues: - What order? Let's put them in a way that is simplest to implement in the interpreter. Order of evaluation is handled in the compiler anyway. By moving around the args in the opcode we can still play with encoding in the compiler. - Use ridges or flat list? Flat lists seem simpler. The remaining question is then the order of arguments.