parse/0: instruction: new parse/0: ingredient: {name: "integer", value: 0, type: 0, properties: ["integer": "type"]} parse/0: product: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer"]} parse/0: instruction: test1 parse/0: ingredient: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer"]} parse/0: product: {name: "2", value: 0, type: 2-1, properties: ["2": "address":"integer"]} parse/0: instruction: next-ingredient parse/0: product: {name: "10", value: 0, type: 2-1, properties: ["10": "address":"integer"]} parse/0: instruction: reply parse/0: ingredient: {name: "10", value: 0, type: 2-1, properties: ["10": "address":"integer", "same-as-ingredient": "0"]} new/0: integer -> 1 after-brace/0: recipe main after-brace/0: new ... after-brace/0: test1 ... after-brace/0: recipe test1 after-brace/0: next-ingredient ... after-brace/0: reply ... new/0: routine allocated memory from 1000 to 101000 schedule/0: main run/0: instruction main/0 run/0: {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer"]} <- new {name: "integer", value: 1, type: 0, properties: ["integer": "type"]} mem/0: new alloc: 1000 mem/0: storing 1000 in location 1 run/0: instruction main/1 run/0: {name: "2", value: 2, type: 2-1, properties: ["2": "address":"integer"]} <- test1 {name: "1", value: 1, type: 2-1, properties: ["1": "address":"integer"]} mem/0: location 1 is 1000 run/0: instruction test1/0 run/0: {name: "10", value: 10, type: 2-1, properties: ["10": "address":"integer"]} <- next-ingredient run/0: product 0 is 1000 mem/0: storing 1000 in location 10 run/0: instruction test1/1 run/0: reply {name: "10", value: 10, type: 2-1, properties: ["10": "address":"integer", "same-as-ingredient": "0"]} mem/0: location 10 is 1000 run/0: result 0 is 1000 warn/0: 'same-as-ingredient' result 2 must be location 1 mem/0: storing 1000 in location 2