def server [channel:^Int] = channel?i = (channel!(i+1) | server!channel) def client [channel:^Int i:Int lk:^[]] = lk?[] = (channel!i | channel?n = (printi!n | lk![]) run( new ch1:^Int new lock:^[] (server!ch1 | lock![] | client![ch1 3 lock] | client![ch1 4 lock] ) )