fun <T : Collection<*>, V : Validators<T>> V.max(value: Int, message: (T) -> String = { "$label collection should have less than $value item(s), but has ${it.size} item(s) instead" }): V
fun <T : Collection<*>, V : Validators<T>> V.min(value: Int, message: (T) -> String = { "$label collection should have more than $value item(s), but has ${it.size} items(s) instead" }): V
fun <T : Collection<*>, V : Validators<T>> V.size(value: Int, message: (T) -> String = { "$label collection should have $value item(s), but has ${it.size} items(s) instead" }): V