sig
  module Eval : Eval
  module Var : sig type t end
  module Input :
    sig
      val get_vars :
        Interfaces.Specs.Eval.Input.t ->
        Interfaces.Specs.Optimizer.Var.t array
      val get_value :
        Interfaces.Specs.Eval.Input.t ->
        Interfaces.Specs.Optimizer.Var.t -> float
      val set_values :
        Interfaces.Specs.Eval.Input.t ->
        Interfaces.Specs.Optimizer.Var.t array ->
        Lacaml.D.vec -> Interfaces.Specs.Eval.Input.t
    end
  module Inputs :
    sig
      val get_vars :
        Interfaces.Specs.Eval.Inputs.t ->
        Interfaces.Specs.Optimizer.Var.t array
      val get_value :
        Interfaces.Specs.Eval.Inputs.t ->
        Interfaces.Specs.Optimizer.Var.t -> float
      val set_values :
        Interfaces.Specs.Eval.Inputs.t ->
        Interfaces.Specs.Optimizer.Var.t array ->
        Lacaml.D.vec -> Interfaces.Specs.Eval.Inputs.t
    end
end