code: @NonNull
      public <E extends T> MapperBuilder<T> bind(@NonNull Class<E> itemClass,
                                                 @NonNull Binder<? super E, ?> binder,
                                                 @NonNull Predicate<? super E> predicate) {
          return bind(itemClass, 0, binder, predicate);
      }
docs: Map an item type to the specified binder.
  <p>
  In addition, this method accepts a {@link Predicate} that will be evaluated per-instance to determine if the
  specified binder is suitable for use with the item.
  @param itemClass The type of item accepted by the specified binder.
  @param binder The binder to be used to bind the specified item type.
  @param predicate A predicate that will be evaluated for each item instance to determine if the specified binder
  is suitable.
  @return This builder, to allow chaining.