//@ `vec_min`? Of course, we can't take the minimum of a vector of *any* type. It has to be a type
//@ supporting a `min` operation. Rust calls such properties that we may demand of types *traits*.
//@ So, as a first step towards a generic `vec_min`, we define a `Minimum` trait.
//@ For now, just ignore the `Copy`, we will come back to this point later.
//@ A `trait` is a lot like interfaces in Java: You define a bunch of functions
//@ `vec_min`? Of course, we can't take the minimum of a vector of *any* type. It has to be a type
//@ supporting a `min` operation. Rust calls such properties that we may demand of types *traits*.
//@ So, as a first step towards a generic `vec_min`, we define a `Minimum` trait.
//@ For now, just ignore the `Copy`, we will come back to this point later.
//@ A `trait` is a lot like interfaces in Java: You define a bunch of functions