Module type Priority.P

Output signature for the functor Make.

type r_t
type r_label
type p_class =
  1. | P_class of r_t list
    (*

    Standard priority class.

    *)
  2. | P_rclass of r_t list
    (*

    Reducing priority class: rewriting is applied until a fixed point is reached without explicit transitions.

    *)
val is_valid : p_class -> bool
val is_valid_err : p_class -> (unit, string) Stdlib.result

Ok () if the class is valid, otherwise Error reason with a precise explanation of the violation. is_valid c = Result.is_ok (is_valid_err c).

val is_valid_list : p_class list -> bool

Ok () if the class is valid, otherwise Error reason with a precise explanation of the violation. is_valid c = Result.is_ok (is_valid_err c).

val cardinal : p_class list -> int
val rewrite : Big.t -> p_class list -> Big.t * int
val scan : (Big.t * int) -> part_f: ((Big.t * r_label * r_t list) list -> (int * (Big.big_key * Big.t * r_label * r_t list)) list * (int * r_label * r_t list) list * int) -> p_class list -> ((int * (Big.big_key * Big.t * r_label * r_t list)) list * (int * r_label * r_t list) list * int) * int

Iterate over priority classes.