let node_type_id t = match t with
| Vstart -> (0, 0)
| VfctIn -> (0, 1)
| VfctOut -> (0, 2)
| Vexit -> (0, 3)
| Vend -> (0, 4)
| Vstmt s | Vtest (true, s, _) | Vswitch (s,_) | Vcall (s, _, _, _) ->
(1, s.sid)
| Vloop (_, s) -> (2, s.sid)
| Vloop2 (_, n) -> (3, n)
| VblkIn (Bfct, _) -> (4, 0)
| VblkIn (Bstmt s,_) -> (5, s.sid)
| VblkIn (Bthen s,_) -> (6, s.sid)
| VblkIn (Belse s,_) -> (7, s.sid)
| VblkIn (Bloop s,_) -> (8, s.sid)
| VblkOut (Bfct, _) -> (9, 0)
| VblkOut (Bstmt s,_) -> (10, s.sid)
| VblkOut (Bthen s,_) -> (11, s.sid)
| VblkOut (Belse s,_) -> (12, s.sid)
| VblkOut (Bloop s,_) -> (13, s.sid)
| Vtest (false, s, _) -> (14, s.sid)