create predicate from CurrencyUnit

Create Predicate from CurrencyUnit.
Given:

     MonetaryAmount m1 = Money.of(BigDecimal.TEN, BRAZILIAN_REAL);
     MonetaryAmount m2 = Money.of(BigDecimal.ZERO, BRAZILIAN_REAL);
     MonetaryAmount m3 = Money.of(BigDecimal.ONE, BRAZILIAN_REAL);
     MonetaryAmount m4 = Money.of(BigDecimal.valueOf(4L), BRAZILIAN_REAL);
     MonetaryAmount m5 = Money.of(BigDecimal.valueOf(5L), BRAZILIAN_REAL);

     Stream<MonetaryAmount> stream = Stream.of(m1, m2, m3, m4, m5);
or

     List<MonetaryAmount> list = Arrays.asList(m1, m2, m3, m4, m5);
     Stream<MonetaryAmount> stream = list.stream();


Will possible do:


     List<Money> justDollar = stream.filter(MonetaryAmount.filter(DOLLAR)).collect(Collectors.toList());
     Map<Boolean, List<Money>> isDollarMap = stream.collect(Collectors.partitioningBy(MonetaryAmount.filter(DOLLAR)));