docs: def partition(self, predicate=None):
          """
          Split an array into two arrays: one whose elements all satisfy the given
          predicate, and one whose elements all do not satisfy the predicate.
          """
          predicate = self._lookupIterator(predicate)
          pass_list = []
          fail_list = []
  
          def by(elem, index, *args):
              (pass_list if predicate(elem) else fail_list).append(elem)
  
          _.each(self.obj, by)
  
          return self._wrap([pass_list, fail_list])