Use some value classes

I wanted to use value classes also with Min, Max, First, Last, but those won't work. The problem is that after erasure Min[T] and T are both Object, and so the Monoid fails to compile because it can't make the bridge methods (which are called when boxing happens) can't be compile.