public static IQueryable <T> Compare <T, M>(this IQueryable <T> self, Expression <Func <T, M> > e, Comparator c, M s)
            where M : IComparable <M>
        {
            var pred = CompareExpressionBuilder <M> .Compare <T>(e, s, c);

            return(Queryable.Where(self, pred));
        }
 public static Expression <Func <T, bool> > Compare <T, M>(this Expression <Func <T, bool> > self, Expression <Func <T, M> > e, Comparator c, M s)
     where M : IComparable <M>
 {
     return(CompareExpressionBuilder <M> .Compare <T>(e, s, c));
 }