def ping n:Int = new d : ^[] if (== n 0) then () else ( pr!["ping" (rchan d)] | d?[] = pong!(dec n) ) and pong n:Int = new c : ^[] if (== n 0) then () else ( pr!["pong" (rchan c)] | c?[] = ping!(dec n) )