timed global protocol Fibonacci(role A, role B) { rec Fib { choice at A { fibonacci(Long) from A to B within [0;1] using a and resetting (); fibonacci(Long) from B to A within [0;1] using a and resetting (); continue Fib within [0;1] using a and resetting (); } or { stop() from A to B within [0;1] using a and resetting (); } } }