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