erlang: modelling interprocessor channel write-before-read semantics