initialise-binding initialise-storing initialise-giving finalise-failing finalise-throwing scope (collateral (bind ("x", allocate-initialised-variable (values, decimal-natural ("3"))), bind ("main", allocate-variable (functions (tuples ((values)*), values)))), sequential (null, assign (bound ("main"), function closure (scope (match (given, tuple ()), handle-return (scope (bind ("a", allocate-nested-vectors (integer-add (decimal-natural ("2"), assigned (bound ("x"))))), scope (bind ("y", allocate-initialised-variable (values, decimal-natural ("4"))), sequential (effect (give ("A", sequential (assign (checked index (integer-add (1, assigned (bound ("y"))), vector-elements (assigned (bound ("a")))), given), given))), print (assigned (checked index (integer-add (1, assigned (bound ("y"))), vector-elements (assigned (bound ("a"))))))))))))), apply (assigned (bound ("main")), tuple ())))