class MobiusExtras {

  @Nonnull
  public static <M, E> MobiusLoop.Builder<M, E, ?> beginnerLoop(final BiFunction<M, E, M> update) {
    //noinspection unchecked
    return loop(
        new Update<M, E, Object>() {
          @Nonnull
          @Override
          public Next<M, Object> update(M model, E event) {
            return Next.next(update.apply(model, event));
          }
        },
        (Connectable<Object, E>) NOOP_CONNECTABLE);
  }

  private  MobiusExtras();

}