sig
  type ('a, 'b) t
  val dot :
    ('a, 'b) Owl_operator.MatrixSig.t ->
    ('a, 'b) Owl_operator.MatrixSig.t -> ('a, 'b) Owl_operator.MatrixSig.t
end