,..............................|..........................., :r +-------#-------------+ : : *==================* | v v : ->!send [(W,S),(W,E)]!-+ *==============* *============* : : *==================* !case N of S, E!->!send [(N,E)]!-- : | *==============* *============* : : ++ +--+ | ++ : : | v | v +| : : | *===================*| *=======* +---+v : : +>!send [(Inl(N,W),S)]!| !split N!-+ *=====* : : *===================*| *=======* +->!use r!----------- : | +---+ | *=====* : : +------------------------+ : ,.........................................................., ,.......................|...., :rev v : :*================* *=====* : :!send [(Inr(),E)]!->!use r!-- :*================* *=====* : ,............................,