sig
  val divide_expr_by_int :
    ('mix, 'id) Alg_expr.e Locality.annot ->
    int -> ('mix, 'id) Alg_expr.e Locality.annot
  val simplify :
    ('mix, 'id) Alg_expr.e Locality.annot ->
    ('mix, 'id) Alg_expr.e Locality.annot
  type ('mix, 'id) corrected_rate_const
  val print :
    (Format.formatter -> ('mix, 'id) Alg_expr.e Locality.annot option -> unit) ->
    Format.formatter ->
    ('mix, 'id) Alg_expr_extra.corrected_rate_const option -> unit
  val get_corrected_rate :
    ('mix, 'id) Alg_expr.e Locality.annot ->
    ('mix, 'id) Alg_expr_extra.corrected_rate_const option
  val necessarily_equal :
    ('mix, 'id) Alg_expr_extra.corrected_rate_const option ->
    ('mix, 'id) Alg_expr_extra.corrected_rate_const option -> bool
  val dep :
    'set ->
    ('mix -> 'set -> 'set) ->
    ('id -> 'set -> 'set) ->
    ('set -> 'set -> 'set) ->
    ('id -> 'set) ->
    ?time_var:'mix -> ('mix, 'id) Alg_expr.e Locality.annot -> 'set
  val diff_token :
    ('mix, 'id) Alg_expr.e Locality.annot ->
    'id -> ('mix, 'id) Alg_expr.e Locality.annot
  val diff_mixture :
    ?time_var:'mix ->
    ('mix, 'id) Alg_expr.e Locality.annot ->
    'mix -> ('mix, 'id) Alg_expr.e Locality.annot
  val fold_over_mixtures_in_alg_exprs :
    (Pattern.id -> '-> 'a) -> Model.t -> '-> 'a
end