In computer science, partial application (or partial function application) refers to the process of fixing a number of arguments to a function, producing another function of smaller arity.
A partially applied Instr produces a PappliedInstr that references the Instr (by name) and which arguments are satisfied. A PappliedInstr is usable as any normal Instr but it has fewer arguments than the original.
The resulting PappliedInstr now has the Envelope hardcoded.
PappliedInstr.new(a, args)
.a = value
.value( ... args)
.ar( ... args)
.kr( ... args)