List of acceptance rules:
accepts obj if latest not-null acceptance result is true
true
doesn't accept obj if latest not-null acceptance result is false
false
returns null if all acceptance results are null or the iterable is empty
null