+let get_rule g (r : n_symbol) : rhs =
+ Node.of_int (g.rules.((Node.to_int r) - g.rules_offset))
+
+let get_id1 (r : rhs) : tn_symbol =
+ Node.of_int(
+ ((Node.to_int r) lsr 4) land 0x7ffffff)
+
+let get_id2 (r : rhs) : tn_symbol =
+ Node.of_int((Node.to_int r) lsr 31)
+
+let get_param_pos (r : rhs) : int =
+ ((Node.to_int r) lsr 2) land 0b11
+
+let num_params (r : rhs) : int =
+ (Node.to_int r) land 0b11
+