initialise-binding initialise-storing initialise-giving finalise-failing finalise-throwing scope (collateral (bind ("main", allocate-variable (functions (tuples ((values)*), values))), bind ("f", allocate-variable (functions (tuples ((values)*), values)))), sequential (assign (bound ("main"), function closure (scope (match (given, tuple ()), handle-return (print (apply (assigned (bound ("f")), tuple ())))))), assign (bound ("f"), function closure (scope (match (given, tuple ()), handle-return (return (decimal-natural ("3")))))), apply (assigned (bound ("main")), tuple ())))