accepts

List of acceptance rules:

  1. accepts obj if latest not-null acceptance result is true

  2. doesn't accept obj if latest not-null acceptance result is false

  3. returns null if all acceptance results are null or the iterable is empty