### Question:
LeftBoundPredicate implements Predicate<A> { public boolean test(A obj) { return predicate.test(param, obj); } @SuppressWarnings("unchecked") <L> LeftBoundPredicate(BinaryPredicate<? super L, ? super A> predicate, L arg); boolean test(A obj); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static LeftBoundPredicate<R> bind(BinaryPredicate<? super L, ? super R> predicate, L arg);  }### Answer:
@Test public void testTest() throws Exception { Predicate<Boolean> p = new LeftBoundPredicate<Boolean>( new BinaryFunctionBinaryPredicate<Object, Boolean>(RightIdentity.<Object, Boolean> function()), "foo"); assertTrue(p.test(Boolean.TRUE)); assertFalse(p.test(Boolean.FALSE)); }