add custom message fn to validate-with-predicate

I also moved a couple of docstrings into the proper place! They were below the arg vector.