You need to include module /pliant/language/compiler.pli when using Expression data type.See pliant computing mechanism for a general introduction on meta-programming
Fields in the Instruction data type:
Other fields in the Instruction data type, that are not used while compiling but rather while optimizing and generating code:
method i size -> s arg Int i ; arg_C Int s
Returns the number of arguments in the instruction.This is not the prototype of a real methods but indicates that you can also use size method to change the number of sub expressions in the expression just like you can use size method to resize a variable size array.
method i '' u -> a arg Instruction i ; arg Int u ; arg_C (Link Argument) a
Selects one of the arguments
function instruction function [argument1 argument2 ...] [jump target] -> i arg Function function ; [arg Argument argument1 argument2 ...] ; [arg Instruction target] ; arg Instruction i
Builds a new instruction.