sig
  type diag
  type cross
  val calc_shared_diag :
    Eval.Kernel.t ->
    Interfaces.Specs.Eval.Inputs.t ->
    Lacaml.D.vec * Interfaces.Specs.Deriv.Inputs.diag
  val calc_shared_cross :
    Eval.Kernel.t ->
    inputs:Interfaces.Specs.Eval.Inputs.t ->
    inducing:Interfaces.Specs.Eval.Inducing.t ->
    Lacaml.D.mat * Interfaces.Specs.Deriv.Inputs.cross
  val calc_deriv_diag :
    Interfaces.Specs.Deriv.Inputs.diag ->
    Interfaces.Specs.Deriv.Hyper.t -> Interfaces.diag_deriv
  val calc_deriv_cross :
    Interfaces.Specs.Deriv.Inputs.cross ->
    Interfaces.Specs.Deriv.Hyper.t -> Interfaces.mat_deriv
end