internalize the conversion of an Expression<Func<T, bool>> into a predicate so as to be allow composition of expression trees and not have the compiler choose the wrong overload.