GenericRule

fun <T> GenericRule(checkFn: (value: T) -> Boolean, messageFn: (value: T) -> String = { "Invalid input" })