Generalize `IsPredicate` and `FieldUpdate` remove boilerplate code and ease enum support.