functor
  (E : sig val compare : Ctypes.c_object -> Ctypes.c_object -> int end->
  sig
    type t = Matrix.matrix
    val compare_dim : 'a option -> 'b option -> int
    val compare :
      Ctypes.c_object * 'a option list ->
      Ctypes.c_object * 'a option list -> int
    val pretty :
      Format.formatter -> Ctypes.c_object * int option list -> unit
  end