sig
  type t
  val make : LDouble.t -> LDouble.t -> ComplexL.t
  val of_complex : Complex.t -> ComplexL.t
  val to_complex : ComplexL.t -> Complex.t
  val zero : ComplexL.t
  val one : ComplexL.t
  val i : ComplexL.t
  val re : ComplexL.t -> LDouble.t
  val im : ComplexL.t -> LDouble.t
  val neg : ComplexL.t -> ComplexL.t
  val conj : ComplexL.t -> ComplexL.t
  val add : ComplexL.t -> ComplexL.t -> ComplexL.t
  val sub : ComplexL.t -> ComplexL.t -> ComplexL.t
  val mul : ComplexL.t -> ComplexL.t -> ComplexL.t
  val div : ComplexL.t -> ComplexL.t -> ComplexL.t
  val inv : ComplexL.t -> ComplexL.t
  val sqrt : ComplexL.t -> ComplexL.t
  val norm2 : ComplexL.t -> LDouble.t
  val norm : ComplexL.t -> LDouble.t
  val polar : LDouble.t -> LDouble.t -> ComplexL.t
  val arg : ComplexL.t -> LDouble.t
  val exp : ComplexL.t -> ComplexL.t
  val log : ComplexL.t -> ComplexL.t
  val pow : ComplexL.t -> ComplexL.t -> ComplexL.t
end