(* ../LICENSE. *)
(* *)
(***********************************************************************)
-type stats = { run : int;
+
+
+type stats = private { mutable pass : int;
tree_size : int;
- fetch_trans_cache_access : int;
- fetch_trans_cache_hit : int;
- eval_trans_cache_access : int;
- eval_trans_cache_hit : int;
+ mutable fetch_trans_cache_access : int;
+ mutable fetch_trans_cache_miss : int;
+ mutable eval_trans_cache_access : int;
+ mutable eval_trans_cache_miss : int;
+ mutable nodes_per_run : int list;
}
-module Make (T : Tree.S) (L : Node_list.S with type node = T.node) :
- sig
- val eval : Ata.t -> T.t -> L.t -> L.t
- val full_eval : Ata.t -> T.t -> L.t -> (State.t * L.t) list
- val stats : unit -> stats
- end
+
+module Make (T : Tree.S) :
+sig
+ module Tree : Tree.S with type node = T.node
+ module ResultSet : Deque.S with type elem = Tree.node
+
+ val eval : Ata.t -> Tree.t -> ResultSet.t -> ResultSet.t
+ val full_eval : Ata.t -> Tree.t -> ResultSet.t -> (State.t * ResultSet.t) list
+ val stats : unit -> stats
+end