sig   type t = Complex.t = { re : float; im : float; }   val zero : BatComplex.t   val one : BatComplex.t   val i : BatComplex.t   val neg : BatComplex.t -> BatComplex.t   val conj : BatComplex.t -> BatComplex.t   val add : BatComplex.t -> BatComplex.t -> BatComplex.t   val sub : BatComplex.t -> BatComplex.t -> BatComplex.t   val mul : BatComplex.t -> BatComplex.t -> BatComplex.t   val div : BatComplex.t -> BatComplex.t -> BatComplex.t   val sqrt : BatComplex.t -> BatComplex.t   val norm2 : BatComplex.t -> float   val norm : BatComplex.t -> float   val arg : BatComplex.t -> float   val polar : float -> float -> BatComplex.t   val exp : BatComplex.t -> BatComplex.t   val log : BatComplex.t -> BatComplex.t   val operations : BatComplex.t BatNumber.numeric   val inv : BatComplex.t -> BatComplex.t   val succ : BatComplex.t -> BatComplex.t   val pred : BatComplex.t -> BatComplex.t   val abs : BatComplex.t -> BatComplex.t   val modulo : BatComplex.t -> BatComplex.t -> BatComplex.t   val pow : BatComplex.t -> BatComplex.t -> BatComplex.t   val compare : BatComplex.t -> BatComplex.t -> int   val ord : BatComplex.t -> BatComplex.t -> BatOrd.order   val equal : BatComplex.t -> BatComplex.t -> bool   val of_int : int -> BatComplex.t   val to_int : BatComplex.t -> int   val of_string : string -> BatComplex.t   val to_string : BatComplex.t -> string   val ( + ) : BatComplex.t -> BatComplex.t -> BatComplex.t   val ( - ) : BatComplex.t -> BatComplex.t -> BatComplex.t   val ( * ) : BatComplex.t -> BatComplex.t -> BatComplex.t   val ( / ) : BatComplex.t -> BatComplex.t -> BatComplex.t   val ( ** ) : BatComplex.t -> BatComplex.t -> BatComplex.t   val ( -- ) : BatComplex.t -> BatComplex.t -> BatComplex.t BatEnum.t   val ( --- ) : BatComplex.t -> BatComplex.t -> BatComplex.t BatEnum.t   val of_float : float -> BatComplex.t   val to_float : BatComplex.t -> float   module Infix :     sig       type bat__infix_t = t       val ( + ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( - ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( * ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( / ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( ** ) : bat__infix_t -> bat__infix_t -> bat__infix_t       val ( -- ) : bat__infix_t -> bat__infix_t -> bat__infix_t BatEnum.t       val ( --- ) : bat__infix_t -> bat__infix_t -> bat__infix_t BatEnum.t     end   module Compare :     sig       type bat__compare_t = t       val ( <> ) : bat__compare_t -> bat__compare_t -> bool       val ( >= ) : bat__compare_t -> bat__compare_t -> bool       val ( <= ) : bat__compare_t -> bat__compare_t -> bool       val ( > ) : bat__compare_t -> bat__compare_t -> bool       val ( < ) : bat__compare_t -> bat__compare_t -> bool       val ( = ) : bat__compare_t -> bat__compare_t -> bool     end   val print : 'BatInnerIO.output -> BatComplex.t -> unit end