Variables: 
bool[1]: "B.lc" 
bool[2]: "B.ld" 
bool[3]: "B.dir" 
int[1]: "B.d" 
chan[1]: "B.L[0]" 
chan[2]: "B.L[1]" 
chan[3]: "B.R[0]" 
chan[4]: "B.R[1]" 

Event graph: 
event[0]: fork: null, #pred: 0, succ: 1 

# process[1]:
event[1]: select: [ #B.L[0] -> ... : #B.L[1] -> ... ], pid: 1, #pred: 1, succ: 7 12 
channel deps: 1 2 
event[2]: null: null, pid: 1, #pred: 1, succ: 1 
event[3]: select: *[ ~B.lc -> ... ], pid: 1, #pred: 1, succ: 5 2 
event[4]: send: B.R[B.d]!(B.lc,B.ld), pid: 1, #pred: 1, succ: 3 
int deps: 1 
channel deps: 3 4 
event[5]: receive: B.L[0]?(B.lc,B.ld), pid: 1, #pred: 1, succ: 4 
channel deps: 1 
event[6]: assign: B.d := zcond(B.dir,1,0), pid: 1, #pred: 1, succ: 3 
event[7]: receive: B.L[0]?(B.lc,B.dir), pid: 1, #pred: 1, succ: 6 
channel deps: 1 
event[8]: select: *[ ~B.lc -> ... ], pid: 1, #pred: 1, succ: 10 2 
event[9]: send: B.R[B.d]!(B.lc,B.ld), pid: 1, #pred: 1, succ: 8 
int deps: 1 
channel deps: 3 4 
event[10]: receive: B.L[1]?(B.lc,B.ld), pid: 1, #pred: 1, succ: 9 
channel deps: 2 
event[11]: assign: B.d := zcond(B.dir,1,0), pid: 1, #pred: 1, succ: 8 
event[12]: receive: B.L[1]?(B.lc,B.dir), pid: 1, #pred: 1, succ: 11 
channel deps: 2 

