The new version of the concurrency semantics:
Changes:
 - Removed >!= cut in
 - changed type of fork e:t e:t' from t -> t' -> con t*t' to con t ->
con t' -> con ((t * t') + (t * con t') + (con t * t'))
 - This means now >>= has the same operation on the fork as the cut in
did, and there is one less operation to worry about. 
 
To recap:
Constructors:
 - live e
 - dead v
 - fork e e'

Operations
 - ret : t -> con t  (* simple boxing *)
 - >>= : con t -> t -> con t' -> con t' (* sequential binding *) 
 - fork : con t -> con t' -> con ((t * t') + (t * con t') + (con t *
t')) (* parallelise two computations *)