explicit global protocol Dns(role Client, role Server, role Other) { query(Addr, Packet) connect Client to Server; choice at Server { dummy() connect Server to Other; answer(Addr, Packet) from Server to Client; } or { query(Addr, Packet) connect Server to Other; answer(Addr, Packet) from Other to Server; answer(Addr, Packet) from Server to Client; } }