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 ();
}
}
}