Module Make.P

type 'a t = private Z.t * Z.t
val make : ?unsafe:bool -> Z.t -> bound:'a Bound.t -> 'a t
val v : 'a t -> Z.t
val add : ?unsafe:bool -> 'a t -> 'b t -> unit t
val add_left : ?unsafe:bool -> 'a t -> 'b t -> 'a t
val sub_left : ?unsafe:bool -> 'a t -> 'b t -> 'a t
val succ : ?unsafe:bool -> 'a t -> 'a t
val random : ?maxv:Z.t -> 'a Bound.t -> 'a t
val check : 'a t -> bool
val f : 'a t -> unit t