"C++11, generate lock-order"
let crit =
let Mutex = LS|UL in
let poMutex = po-loc & (Mutex * Mutex) in
(po-loc & (LS * UL)) \ (poMutex;poMutex)
with loLL from generate_orders(LS,po)
let loLU = loLL?;crit
and loUL = crit^-1;loLL
let lo = (loLL|loLU|loUL)+