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