sig
  module Ord_t :
    sig
      type t = { cnt : int; exp : float; }
      val pp : Format.formatter -> Model_intf.Data.Ord_t.t -> unit
      val show : Model_intf.Data.Ord_t.t -> string
      val compare : Model_intf.Data.Ord_t.t -> Model_intf.Data.Ord_t.t -> int
    end
  module T :
    sig
      type t = Ord_t.t = { cnt : int; exp : float; }
      val pp : Format.formatter -> t -> unit
      val show : t -> string
    end
  type t = T.t
  val create : cnt:int -> exp:float -> t
  val count : t -> int
  val expect : t -> float
  val update :
    cnt:int ->
    exp:float ->
    update_rule:Prob_cache_common.Update_rules.Update_fn.t ->
    prior_count:('-> int) -> prior_exp:('-> float) -> '-> t option -> t
  val compare : Model_intf.Data.Ord_t.t -> Model_intf.Data.Ord_t.t -> int
end