Module S.Number

type t
val (+) : t -> t -> t
val (-) : t -> t -> t
val (*) : t -> t -> t Checked.t
val constant : field -> t
val one : t
val zero : t
val if_ : Boolean.var -> then_:t -> else_:t -> t Checked.t
val (<) : t -> t -> Boolean.var Checked.t
val (>) : t -> t -> Boolean.var Checked.t
val (<=) : t -> t -> Boolean.var Checked.t
val (>=) : t -> t -> Boolean.var Checked.t
val (=) : t -> t -> Boolean.var Checked.t
val min : t -> t -> t Checked.t
val max : t -> t -> t Checked.t
val to_var : t -> Field.Var.t
val of_bits : Boolean.var list -> t
val to_bits : t -> Boolean.var list Checked.t
val div_pow_2 : t -> [ `Two_to_the of int ] -> t Checked.t
val ceil_div_pow_2 : t -> [ `Two_to_the of int ] -> t Checked.t
val mul_pow_2 : t -> [ `Two_to_the of int ] -> t Checked.t
val mod_pow_2 : t -> [ `Two_to_the of int ] -> t Checked.t
val of_pow_2 : [ `Two_to_the of int ] -> t
val clamp_to_n_bits : t -> int -> t Checked.t