@Test public void testMapFunctionOfQsuperTQextendsR1() { assertThat(just.map(i->i+5).get(),equalTo(Maybe.just(15))); }
@Override public <B> OptionT<W,B> map(final Function<? super T, ? extends B> f) { return new OptionT<W,B>( run.map(o -> o.map(f))); }
OptionT extends ValueTransformer<W,T> implements To<OptionT<W,T>>,
                                                                  Transformable<T>,
                                                                  Filters<T> { @Override public <B> OptionT<W,B> map(final Function<? super T, ? extends B> f) { return new OptionT<W,B>( run.map(o -> o.map(f))); } }
OptionT extends ValueTransformer<W,T> implements To<OptionT<W,T>>,
                                                                  Transformable<T>,
                                                                  Filters<T> { @Override public <B> OptionT<W,B> map(final Function<? super T, ? extends B> f) { return new OptionT<W,B>( run.map(o -> o.map(f))); } private  OptionT(final AnyM<W,Option<T>> run); }
OptionT extends ValueTransformer<W,T> implements To<OptionT<W,T>>,
                                                                  Transformable<T>,
                                                                  Filters<T> { @Override public <B> OptionT<W,B> map(final Function<? super T, ? extends B> f) { return new OptionT<W,B>( run.map(o -> o.map(f))); } private  OptionT(final AnyM<W,Option<T>> run); @Override Iterator<T> iterator(); @Override ReactiveSeq<T> stream(); @Override AnyM<W,Option<T>> unwrap(); R unwrapTo(Function<? super AnyM<W,Option<T>>, ? extends R> fn); @Override AnyM<W,? extends MonadicValue<T>> transformerStream(); @Override OptionT<W,T> filter(final Predicate<? super T> test); @Override OptionT<W,T> peek(final Consumer<? super T> peek); @Override OptionT<W,B> map(final Function<? super T, ? extends B> f); OptionT<W,B> flatMapT(final Function<? super T, OptionT<W,B>> f); OptionT<W,B> flatMap(final Function<? super T, ? extends Option<? extends B>> f); static Function<OptionT<W,U>, OptionT<W,R>> lift(final Function<? super U, ? extends R> fn); static BiFunction<OptionT<W,U1>, OptionT<W,U2>, OptionT<W,R>> lift2(
            final BiFunction<? super U1, ? super U2, ? extends R> fn); static OptionT<W,A> fromAnyM(final AnyM<W,A> anyM); static OptionT<W,A> of(final AnyM<W,Option<A>> monads); @Override String toString(); OptionT<W,R> unitIterable(final Iterable<R> it); @Override OptionT<W,R> unit(final R value); @Override OptionT<W,R> empty(); @Override int hashCode(); @Override boolean equals(final Object o); @Override AnyM<W, ? extends ReactiveSeq<T>> iterate(UnaryOperator<T> fn, T alt); @Override AnyM<W, ? extends ReactiveSeq<T>> generate(T alt); @Override OptionT<W, R> zip(Iterable<? extends T2> iterable,
                                     BiFunction<? super T, ? super T2, ? extends R> fn); @Override OptionT<W, R> zip(BiFunction<? super T, ? super T2, ? extends R> fn, Publisher<? extends T2> publisher); @Override OptionT<W, Tuple2<T, U>> zip(Iterable<? extends U> other); @Override OptionT<W, R> forEach4(Function<? super T, ? extends MonadicValue<R1>> value1,
                                                      BiFunction<? super T, ? super R1, ? extends MonadicValue<R2>> value2,
                                                      Function3<? super T, ? super R1, ? super R2, ? extends MonadicValue<R3>> value3,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach4(Function<? super T, ? extends MonadicValue<R1>> value1,
                                                      BiFunction<? super T, ? super R1, ? extends MonadicValue<R2>> value2,
                                                      Function3<? super T, ? super R1, ? super R2, ? extends MonadicValue<R3>> value3,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, Boolean> filterFunction,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach3(Function<? super T, ? extends MonadicValue<R1>> value1,
                                                  BiFunction<? super T, ? super R1, ? extends MonadicValue<R2>> value2,
                                                  Function3<? super T, ? super R1, ? super R2, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach3(Function<? super T, ? extends MonadicValue<R1>> value1,
                                                  BiFunction<? super T, ? super R1, ? extends MonadicValue<R2>> value2,
                                                  Function3<? super T, ? super R1, ? super R2, Boolean> filterFunction,
                                                  Function3<? super T, ? super R1, ? super R2, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach2(Function<? super T, ? extends MonadicValue<R1>> value1,
                                          BiFunction<? super T, ? super R1, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach2(Function<? super T, ? extends MonadicValue<R1>> value1,
                                          BiFunction<? super T, ? super R1, Boolean> filterFunction,
                                          BiFunction<? super T, ? super R1, ? extends R> yieldingFunction); @Override OptionT<W, R> concatMap(Function<? super T, ? extends Iterable<? extends R>> mapper); @Override OptionT<W, R> mergeMap(Function<? super T, ? extends Publisher<? extends R>> mapper); OptionT<W,R> forEach4M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                                      BiFunction<? super T, ? super R1, ? extends OptionT<W,R2>> value2,
                                                      Function3<? super T, ? super R1, ? super R2, ? extends OptionT<W,R3>> value3,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R> yieldingFunction); OptionT<W,R> forEach4M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                                      BiFunction<? super T, ? super R1, ? extends OptionT<W,R2>> value2,
                                                      Function3<? super T, ? super R1, ? super R2, ? extends OptionT<W,R3>> value3,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, Boolean> filterFunction,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R> yieldingFunction); OptionT<W,R> forEach3M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                                  BiFunction<? super T, ? super R1, ? extends OptionT<W,R2>> value2,
                                                  Function3<? super T, ? super R1, ? super R2, ? extends R> yieldingFunction); OptionT<W,R> forEach3M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                                  BiFunction<? super T, ? super R1, ? extends OptionT<W,R2>> value2,
                                                  Function3<? super T, ? super R1, ? super R2, Boolean> filterFunction,
                                                  Function3<? super T, ? super R1, ? super R2, ? extends R> yieldingFunction); OptionT<W,R> forEach2M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                          BiFunction<? super T, ? super R1, ? extends R> yieldingFunction); OptionT<W,R> forEach2M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                          BiFunction<? super T, ? super R1, Boolean> filterFunction,
                                          BiFunction<? super T, ? super R1, ? extends R> yieldingFunction); String mkString(); @Override OptionT<W,U> ofType(Class<? extends U> type); @Override OptionT<W,T> filterNot(Predicate<? super T> predicate); @Override OptionT<W,T> notNull(); @Override OptionT<W,Tuple2<T, U>> zipWithPublisher(Publisher<? extends U> other); @Override OptionT<W,Tuple3<T, S, U>> zip3(Iterable<? extends S> second, Iterable<? extends U> third); @Override OptionT<W,R> zip3(Iterable<? extends S> second, Iterable<? extends U> third, Function3<? super T, ? super S, ? super U, ? extends R> fn3); @Override OptionT<W,Tuple4<T, T2, T3, T4>> zip4(Iterable<? extends T2> second, Iterable<? extends T3> third, Iterable<? extends T4> fourth); @Override OptionT<W,R> zip4(Iterable<? extends T2> second, Iterable<? extends T3> third, Iterable<? extends T4> fourth, Function4<? super T, ? super T2, ? super T3, ? super T4, ? extends R> fn); }
OptionT extends ValueTransformer<W,T> implements To<OptionT<W,T>>,
                                                                  Transformable<T>,
                                                                  Filters<T> { @Override public <B> OptionT<W,B> map(final Function<? super T, ? extends B> f) { return new OptionT<W,B>( run.map(o -> o.map(f))); } private  OptionT(final AnyM<W,Option<T>> run); @Override Iterator<T> iterator(); @Override ReactiveSeq<T> stream(); @Override AnyM<W,Option<T>> unwrap(); R unwrapTo(Function<? super AnyM<W,Option<T>>, ? extends R> fn); @Override AnyM<W,? extends MonadicValue<T>> transformerStream(); @Override OptionT<W,T> filter(final Predicate<? super T> test); @Override OptionT<W,T> peek(final Consumer<? super T> peek); @Override OptionT<W,B> map(final Function<? super T, ? extends B> f); OptionT<W,B> flatMapT(final Function<? super T, OptionT<W,B>> f); OptionT<W,B> flatMap(final Function<? super T, ? extends Option<? extends B>> f); static Function<OptionT<W,U>, OptionT<W,R>> lift(final Function<? super U, ? extends R> fn); static BiFunction<OptionT<W,U1>, OptionT<W,U2>, OptionT<W,R>> lift2(
            final BiFunction<? super U1, ? super U2, ? extends R> fn); static OptionT<W,A> fromAnyM(final AnyM<W,A> anyM); static OptionT<W,A> of(final AnyM<W,Option<A>> monads); @Override String toString(); OptionT<W,R> unitIterable(final Iterable<R> it); @Override OptionT<W,R> unit(final R value); @Override OptionT<W,R> empty(); @Override int hashCode(); @Override boolean equals(final Object o); @Override AnyM<W, ? extends ReactiveSeq<T>> iterate(UnaryOperator<T> fn, T alt); @Override AnyM<W, ? extends ReactiveSeq<T>> generate(T alt); @Override OptionT<W, R> zip(Iterable<? extends T2> iterable,
                                     BiFunction<? super T, ? super T2, ? extends R> fn); @Override OptionT<W, R> zip(BiFunction<? super T, ? super T2, ? extends R> fn, Publisher<? extends T2> publisher); @Override OptionT<W, Tuple2<T, U>> zip(Iterable<? extends U> other); @Override OptionT<W, R> forEach4(Function<? super T, ? extends MonadicValue<R1>> value1,
                                                      BiFunction<? super T, ? super R1, ? extends MonadicValue<R2>> value2,
                                                      Function3<? super T, ? super R1, ? super R2, ? extends MonadicValue<R3>> value3,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach4(Function<? super T, ? extends MonadicValue<R1>> value1,
                                                      BiFunction<? super T, ? super R1, ? extends MonadicValue<R2>> value2,
                                                      Function3<? super T, ? super R1, ? super R2, ? extends MonadicValue<R3>> value3,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, Boolean> filterFunction,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach3(Function<? super T, ? extends MonadicValue<R1>> value1,
                                                  BiFunction<? super T, ? super R1, ? extends MonadicValue<R2>> value2,
                                                  Function3<? super T, ? super R1, ? super R2, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach3(Function<? super T, ? extends MonadicValue<R1>> value1,
                                                  BiFunction<? super T, ? super R1, ? extends MonadicValue<R2>> value2,
                                                  Function3<? super T, ? super R1, ? super R2, Boolean> filterFunction,
                                                  Function3<? super T, ? super R1, ? super R2, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach2(Function<? super T, ? extends MonadicValue<R1>> value1,
                                          BiFunction<? super T, ? super R1, ? extends R> yieldingFunction); @Override OptionT<W, R> forEach2(Function<? super T, ? extends MonadicValue<R1>> value1,
                                          BiFunction<? super T, ? super R1, Boolean> filterFunction,
                                          BiFunction<? super T, ? super R1, ? extends R> yieldingFunction); @Override OptionT<W, R> concatMap(Function<? super T, ? extends Iterable<? extends R>> mapper); @Override OptionT<W, R> mergeMap(Function<? super T, ? extends Publisher<? extends R>> mapper); OptionT<W,R> forEach4M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                                      BiFunction<? super T, ? super R1, ? extends OptionT<W,R2>> value2,
                                                      Function3<? super T, ? super R1, ? super R2, ? extends OptionT<W,R3>> value3,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R> yieldingFunction); OptionT<W,R> forEach4M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                                      BiFunction<? super T, ? super R1, ? extends OptionT<W,R2>> value2,
                                                      Function3<? super T, ? super R1, ? super R2, ? extends OptionT<W,R3>> value3,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, Boolean> filterFunction,
                                                      Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R> yieldingFunction); OptionT<W,R> forEach3M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                                  BiFunction<? super T, ? super R1, ? extends OptionT<W,R2>> value2,
                                                  Function3<? super T, ? super R1, ? super R2, ? extends R> yieldingFunction); OptionT<W,R> forEach3M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                                  BiFunction<? super T, ? super R1, ? extends OptionT<W,R2>> value2,
                                                  Function3<? super T, ? super R1, ? super R2, Boolean> filterFunction,
                                                  Function3<? super T, ? super R1, ? super R2, ? extends R> yieldingFunction); OptionT<W,R> forEach2M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                          BiFunction<? super T, ? super R1, ? extends R> yieldingFunction); OptionT<W,R> forEach2M(Function<? super T, ? extends OptionT<W,R1>> value1,
                                          BiFunction<? super T, ? super R1, Boolean> filterFunction,
                                          BiFunction<? super T, ? super R1, ? extends R> yieldingFunction); String mkString(); @Override OptionT<W,U> ofType(Class<? extends U> type); @Override OptionT<W,T> filterNot(Predicate<? super T> predicate); @Override OptionT<W,T> notNull(); @Override OptionT<W,Tuple2<T, U>> zipWithPublisher(Publisher<? extends U> other); @Override OptionT<W,Tuple3<T, S, U>> zip3(Iterable<? extends S> second, Iterable<? extends U> third); @Override OptionT<W,R> zip3(Iterable<? extends S> second, Iterable<? extends U> third, Function3<? super T, ? super S, ? super U, ? extends R> fn3); @Override OptionT<W,Tuple4<T, T2, T3, T4>> zip4(Iterable<? extends T2> second, Iterable<? extends T3> third, Iterable<? extends T4> fourth); @Override OptionT<W,R> zip4(Iterable<? extends T2> second, Iterable<? extends T3> third, Iterable<? extends T4> fourth, Function4<? super T, ? super T2, ? super T3, ? super T4, ? extends R> fn);  }