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, _) | Vloop (_, s) | Vswitch (s,_)
| VcallIn (s, _, _, _) -> (1, s.sid)
| 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)
| VcallOut (s, _, _, _) -> (2, s.sid)
| VcallExit (s, _, _, _) -> (3, s.sid)