code: @Override
      public <E> Choice4<A, B, C, E> flatMap(Function<? super D, ? extends Monad<E, Choice4<A, B, C, ?>>> f) {
          return match(Choice4::a, Choice4::b, Choice4::c, d -> f.apply(d).coerce());
      }
docs: {@inheritDoc}