type basic_instr = string type primitive = | Basic of basic_instr | Terminate | Ptest of basic_instr | Ntest of basic_instr | Jump of int type program = | Primitive of primitive | Concat of program list | Repeat of program | Empty