code: public static <A, B> Predicate<A> compose(Predicate<B> predicate, Function<A, ? extends B> function) {
  		return t -> predicate.test(function.apply(t));
  	}
docs: Returns the composition of a function and a predicate. For every {@code x},
  the generated predicate returns {@code predicate(function(x))}.
  
  @return the composition of the provided function and predicate