Promela and Model Description
3) Message passing
    Message channels are used to model the transfer of data from one
    process to another. They can be declared locally or globally.
ex1: chan qname = [16] of { short }     // simple data type
ex2:  chan qname = [16] of { byte, int, chan, byte }  // data structure
ex3: sending    qname!exp1, exp2, exp3…
Receiving  qname?var1,var2,var3 …
    The sending is executable only if the channel is not full, the receiving is
    executable only if the channel is non empty.