Module 3-P.Memo

Memoised interface

type t =
| C of (r_t * (Iso.t * Iso.t) list) list

Priority class

| R of (r_t * (Iso.t * Iso.t) list) list

Reducible priority class

val init : p_class list -> t list
val rewrite : Big.t -> Sparse.t -> t list -> Big.t * int
val scan : (Big.t * int) -> Sparse.t -> part_f:((Big.t * r_label * r_t list) list -> (int * (Big.t * r_label * r_t list)) list * (int * r_label * r_t list) list * int) -> t list -> ((int * (Big.t * r_label * r_t list)) list * (int * r_label * r_t list) list * int) * int
val scan_sim : Big.t -> Sparse.t -> t list -> (Big.t * r_label * r_t list) option * int