Param ->
  sig
    type t = Mpc.c
    val zero : Mpc.C.Make.t
    val one : Mpc.C.Make.t
    val minus_one : Mpc.C.Make.t
    val i : Mpc.C.Make.t
    external compare : Mpc.C.Make.t -> Mpc.C.Make.t -> int
      = "mlmpc_c_compare"
    external compare_int : Mpc.C.Make.t -> int -> int = "mlmpc_c_compare_int"
    val neg : Mpc.C.Make.t -> Mpc.C.Make.t
    val abs : Mpc.C.Make.t -> Mpfr.fr
    val add : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
    val add_int : Mpc.C.Make.t -> int -> Mpc.C.Make.t
    val sub : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
    val sub_int : Mpc.C.Make.t -> int -> Mpc.C.Make.t
    val mul : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
    val mul_int : Mpc.C.Make.t -> int -> Mpc.C.Make.t
    val div : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
    val fma : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
    val pow_int : base:Mpc.C.Make.t -> exponent:int -> Mpc.C.Make.t
    val int_pow_int : base:int -> exponent:int -> Mpc.C.Make.t
    val scale : Mpc.C.Make.t -> base:int -> exponent:int -> Mpc.C.Make.t
    val root : nth:int -> Mpc.C.Make.t -> Mpc.C.Make.t
    val sqrt : Mpc.C.Make.t -> Mpc.C.Make.t
    val log : Mpc.C.Make.t -> Mpc.C.Make.t
    val based_log : base:int -> Mpc.C.Make.t -> Mpc.C.Make.t
    val pow : Mpc.C.Make.t -> Mpc.C.Make.t -> Mpc.C.Make.t
    val exp : Mpc.C.Make.t -> Mpc.C.Make.t
    val conj : Mpc.C.Make.t -> Mpc.C.Make.t
    val norm2 : Mpc.C.Make.t -> Mpfr.fr
    val arg : Mpc.C.Make.t -> Mpfr.fr
    val polar : Mpfr.fr -> Mpfr.fr -> Mpc.C.Make.t
    val proj : Mpc.C.Make.t -> Mpc.C.Make.t
    external real : Mpc.C.Make.t -> Mpfr.fr = "mlmpc_c_real"
    external imag : Mpc.C.Make.t -> Mpfr.fr = "mlmpc_c_imag"
    val of_based_string : base:int -> string -> Mpc.C.Make.t
    val of_string : string -> Mpc.C.Make.t
    val to_based_string : base:int -> Mpc.C.Make.t -> string
    val to_string : Mpc.C.Make.t -> string
    val of_int : int -> Mpc.C.Make.t
    val of_float : float -> Mpc.C.Make.t
    val of_z : Gmp.z -> Mpc.C.Make.t
    val of_q : Gmp.q -> Mpc.C.Make.t
    val of_f : Gmp.f -> Mpc.C.Make.t
    val of_fr : Mpfr.fr -> Mpc.C.Make.t
    val make_int : int -> int -> Mpc.C.Make.t
    val make_float : float -> float -> Mpc.C.Make.t
    val make_z : Gmp.z -> Gmp.z -> Mpc.C.Make.t
    val make_q : Gmp.q -> Gmp.q -> Mpc.C.Make.t
    val make_f : Gmp.f -> Gmp.f -> Mpc.C.Make.t
    val make_fr : Mpfr.fr -> Mpfr.fr -> Mpc.C.Make.t
  end