Hey!
The `empty? 'Predicate checks for some classes and behaves counter intuitively in some common scenarios:
[1] pry(main)> Predicates[:empty?].(Set[])
=> false
[2] pry(main)> Predicates[:empty?].(Set[1])
=> false
[3] pry(main)> Predicates[:included_in?].(Set[1], 1)
=> true
[4] pry(main)> Predicates[:included_in?].(Set[1], 0)
=> false
It may make sense to change this and have this behavior:
[1] pry(main)> Predicates[:empty?].(Set[])
=> true
[2] pry(main)> Predicates[:empty?].(Set[1])
=> false
[3] pry(main)> Predicates[:included_in?].(Set[1], 1)
=> true
[4] pry(main)> Predicates[:included_in?].(Set[1], 0)
=> false
I do not know if it’s a problem to use a respond_to?
in this code.