sig
  val get :
    ('a, 'b) Invariant.t array ->
    (int, 'c) Invariant.t -> 'Invariant.unsetable_t
  val argmin :
    ('a, 'b) Invariant.t array -> ('-> 'c) -> int Invariant.unsetable_t
  val min :
    ('a, 'b) Invariant.t array -> ('-> 'c) -> 'Invariant.unsetable_t
end