protected abstract fun isValid(input: INPUT): OUTPUT
Function used to define whether a condition is satisfied with given input. Typically, this function should be invoked from Rule.canPass.