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/42 {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/1001 {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/30
run/0: product 0 is 1000
mem/0: storing 1000 in location 10
run/0: instruction test1/1
run/0: reply/33 {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