`sig
type t
external from_int : dest:Gmp.Z2.t -> int -> unit = "_mlgmp_z2_from_int"
external from_string_base : dest:Gmp.Z2.t -> base:int -> string -> unit
= "_mlgmp_z2_from_string_base"
external from_float : dest:Gmp.Z2.t -> float -> unit
= "_mlgmp_z2_from_float"
external create : unit -> Gmp.Z2.t = "_mlgmp_z_create"
external copy : dest:Gmp.Z2.t -> from:Gmp.Z2.t -> unit = "_mlgmp_z2_copy"
external add : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_add"
external sub : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_sub"
external mul : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_mul"
external tdiv_q : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_tdiv_q"
external tdiv_r : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_tdiv_r"
external cdiv_q : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_cdiv_q"
external cdiv_r : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_cdiv_r"
external fdiv_q : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_fdiv_q"
external fdiv_r : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_fdiv_r"
external divexact : dest:Gmp.Z2.t -> Gmp.Z2.t -> Gmp.Z2.t -> unit
= "_mlgmp_z2_divexact"
external neg : dest:Gmp.Z2.t -> Gmp.Z2.t -> unit = "_mlgmp_z2_neg"
external abs : dest:Gmp.Z2.t -> Gmp.Z2.t -> unit = "_mlgmp_z2_abs"
end`