test_class.file: cyclops-pure/src/test/java/cyclops/control/ReaderWriterStateTest.java
test_class.identifier: ReaderWriterStateTest
test_case.body: @Test
      public void map(){
          ReaderWriterState<String,Integer,String,Integer> rws = ReaderWriterState.rws((r, s)->Tuple.tuple(10,s,1), Monoids.intMax);
          ReaderWriterState<String, Integer, String, Integer> mapped = rws.map(i -> i * 2);
  
          assertThat(mapped.run("hello","world"),equalTo(Tuple.tuple(10, "world", 2)));
      }
test_case.class_method_signature: ReaderWriterStateTest.map()
test_case.full_signature: @Test public void map()
test_case.identifier: map
test_case.invocations: rws tuple map assertThat run equalTo tuple
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void map()
focal_class.declarator: monoid
focal_class.modifier: private final
focal_class.original_string: private final Monoid<W> monoid;
focal_class.type: Monoid<W>
focal_class.var_name: monoid
focal_class.declarator: runState
focal_class.modifier: private final
focal_class.original_string: private final BiFunction<R,S, Free<supplier,Tuple3<W, S, T>>> runState;
focal_class.type: BiFunction<R,S, Free<supplier,Tuple3<W, S, T>>>
focal_class.var_name: runState
focal_class.file: cyclops-pure/src/main/java/cyclops/control/ReaderWriterState.java
focal_class.identifier: ReaderWriterState
focal_class.interfaces: implements Higher4<rws,R,W,S,T>
focal_class.class_method_signature: ReaderWriterState.run(R r,S s)
focal_class.full_signature: public Tuple3<W,S,T> run(R r,S s)
focal_class.identifier: run
focal_class.modifiers: public
focal_class.parameters: (R r,S s)
focal_class.return: Tuple3<W,S,T>
focal_class.signature: Tuple3<W,S,T> run(R r,S s)
focal_class.class_method_signature: ReaderWriterState.tailRec(Monoid<W> monoid,T initial, Function<? super T, ? extends  ReaderWriterState<R1, W, S,  ? extends Either<T, R>>> fn)
focal_class.full_signature: public static ReaderWriterState<R1, W, S, R> tailRec(Monoid<W> monoid,T initial, Function<? super T, ? extends  ReaderWriterState<R1, W, S,  ? extends Either<T, R>>> fn)
focal_class.identifier: tailRec
focal_class.modifiers: public static
focal_class.parameters: (Monoid<W> monoid,T initial, Function<? super T, ? extends  ReaderWriterState<R1, W, S,  ? extends Either<T, R>>> fn)
focal_class.return: ReaderWriterState<R1, W, S, R>
focal_class.signature: ReaderWriterState<R1, W, S, R> tailRec(Monoid<W> monoid,T initial, Function<? super T, ? extends  ReaderWriterState<R1, W, S,  ? extends Either<T, R>>> fn)
focal_class.class_method_signature: ReaderWriterState.tailRecInternal(Monoid<W> monoid,T initial, Function<? super T, ? extends Higher<Higher<Higher<Higher<rws, R1>, W>, S>, ? extends Either<T, R>>> fn)
focal_class.full_signature: private static Higher<Higher<Higher<Higher<rws, R1>, W>, S>, R> tailRecInternal(Monoid<W> monoid,T initial, Function<? super T, ? extends Higher<Higher<Higher<Higher<rws, R1>, W>, S>, ? extends Either<T, R>>> fn)
focal_class.identifier: tailRecInternal
focal_class.modifiers: private static
focal_class.parameters: (Monoid<W> monoid,T initial, Function<? super T, ? extends Higher<Higher<Higher<Higher<rws, R1>, W>, S>, ? extends Either<T, R>>> fn)
focal_class.return: Higher<Higher<Higher<Higher<rws, R1>, W>, S>, R>
focal_class.signature: Higher<Higher<Higher<Higher<rws, R1>, W>, S>, R> tailRecInternal(Monoid<W> monoid,T initial, Function<? super T, ? extends Higher<Higher<Higher<Higher<rws, R1>, W>, S>, ? extends Either<T, R>>> fn)
focal_class.class_method_signature: ReaderWriterState.tell(W value)
focal_class.full_signature: public ReaderWriterState<R,W,S,T> tell(W value)
focal_class.identifier: tell
focal_class.modifiers: public
focal_class.parameters: (W value)
focal_class.return: ReaderWriterState<R,W,S,T>
focal_class.signature: ReaderWriterState<R,W,S,T> tell(W value)
focal_class.class_method_signature: ReaderWriterState.ask()
focal_class.full_signature: public ReaderWriterState<R,W,S,T> ask()
focal_class.identifier: ask
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ReaderWriterState<R,W,S,T>
focal_class.signature: ReaderWriterState<R,W,S,T> ask()
focal_class.class_method_signature: ReaderWriterState.local(Function<? super  R,? extends R> fn)
focal_class.full_signature: public ReaderWriterState<R,W,S,T> local(Function<? super  R,? extends R> fn)
focal_class.identifier: local
focal_class.modifiers: public
focal_class.parameters: (Function<? super  R,? extends R> fn)
focal_class.return: ReaderWriterState<R,W,S,T>
focal_class.signature: ReaderWriterState<R,W,S,T> local(Function<? super  R,? extends R> fn)
focal_class.class_method_signature: ReaderWriterState.map(Function<? super T,? extends R2> mapper)
focal_class.full_signature: public ReaderWriterState<R,W,S,R2> map(Function<? super T,? extends R2> mapper)
focal_class.identifier: map
focal_class.modifiers: public
focal_class.parameters: (Function<? super T,? extends R2> mapper)
focal_class.return: ReaderWriterState<R,W,S,R2>
focal_class.signature: ReaderWriterState<R,W,S,R2> map(Function<? super T,? extends R2> mapper)
focal_class.class_method_signature: ReaderWriterState.mapState(Function<Tuple3<W,S,T>, Tuple3<W,S, R2>> fn)
focal_class.full_signature: public ReaderWriterState<R,W,S,R2> mapState(Function<Tuple3<W,S,T>, Tuple3<W,S, R2>> fn)
focal_class.identifier: mapState
focal_class.modifiers: public
focal_class.parameters: (Function<Tuple3<W,S,T>, Tuple3<W,S, R2>> fn)
focal_class.return: ReaderWriterState<R,W,S,R2>
focal_class.signature: ReaderWriterState<R,W,S,R2> mapState(Function<Tuple3<W,S,T>, Tuple3<W,S, R2>> fn)
focal_class.class_method_signature: ReaderWriterState.suspended(BiFunction<? super R, ? super S, Free<supplier,Tuple3<W,S, T>>> runF,
                                                                    Monoid<W> monoid)
focal_class.full_signature: private static ReaderWriterState<R,W,S,T> suspended(BiFunction<? super R, ? super S, Free<supplier,Tuple3<W,S, T>>> runF,
                                                                    Monoid<W> monoid)
focal_class.identifier: suspended
focal_class.modifiers: private static
focal_class.parameters: (BiFunction<? super R, ? super S, Free<supplier,Tuple3<W,S, T>>> runF,
                                                                    Monoid<W> monoid)
focal_class.return: ReaderWriterState<R,W,S,T>
focal_class.signature: ReaderWriterState<R,W,S,T> suspended(BiFunction<? super R, ? super S, Free<supplier,Tuple3<W,S, T>>> runF,
                                                                    Monoid<W> monoid)
focal_class.class_method_signature: ReaderWriterState.flatMap(Function<? super T,? extends  ReaderWriterState<R,W,S,R2>> f)
focal_class.full_signature: public ReaderWriterState<R,W,S,R2> flatMap(Function<? super T,? extends  ReaderWriterState<R,W,S,R2>> f)
focal_class.identifier: flatMap
focal_class.modifiers: public
focal_class.parameters: (Function<? super T,? extends  ReaderWriterState<R,W,S,R2>> f)
focal_class.return: ReaderWriterState<R,W,S,R2>
focal_class.signature: ReaderWriterState<R,W,S,R2> flatMap(Function<? super T,? extends  ReaderWriterState<R,W,S,R2>> f)
focal_class.class_method_signature: ReaderWriterState.forEach4(Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                        BiFunction<? super T, ? super R1, ReaderWriterState<R,W,S,R2>> value3,
                                                        Function3<? super T, ? super R1, ? super R2, ReaderWriterState<R,W,S,R3>> value4,
                                                        Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R4> yieldingFunction)
focal_class.full_signature: public ReaderWriterState<R,W,S,R4> forEach4(Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                        BiFunction<? super T, ? super R1, ReaderWriterState<R,W,S,R2>> value3,
                                                        Function3<? super T, ? super R1, ? super R2, ReaderWriterState<R,W,S,R3>> value4,
                                                        Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R4> yieldingFunction)
focal_class.identifier: forEach4
focal_class.modifiers: public
focal_class.parameters: (Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                        BiFunction<? super T, ? super R1, ReaderWriterState<R,W,S,R2>> value3,
                                                        Function3<? super T, ? super R1, ? super R2, ReaderWriterState<R,W,S,R3>> value4,
                                                        Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R4> yieldingFunction)
focal_class.return: ReaderWriterState<R,W,S,R4>
focal_class.signature: ReaderWriterState<R,W,S,R4> forEach4(Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                        BiFunction<? super T, ? super R1, ReaderWriterState<R,W,S,R2>> value3,
                                                        Function3<? super T, ? super R1, ? super R2, ReaderWriterState<R,W,S,R3>> value4,
                                                        Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R4> yieldingFunction)
focal_class.class_method_signature: ReaderWriterState.forEach3(Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                    BiFunction<? super T, ? super R1, ReaderWriterState<R,W,S,R2>> value3,
                                                    Function3<? super T, ? super R1, ? super R2, ? extends R4> yieldingFunction)
focal_class.full_signature: public ReaderWriterState<R,W,S,R4> forEach3(Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                    BiFunction<? super T, ? super R1, ReaderWriterState<R,W,S,R2>> value3,
                                                    Function3<? super T, ? super R1, ? super R2, ? extends R4> yieldingFunction)
focal_class.identifier: forEach3
focal_class.modifiers: public
focal_class.parameters: (Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                    BiFunction<? super T, ? super R1, ReaderWriterState<R,W,S,R2>> value3,
                                                    Function3<? super T, ? super R1, ? super R2, ? extends R4> yieldingFunction)
focal_class.return: ReaderWriterState<R,W,S,R4>
focal_class.signature: ReaderWriterState<R,W,S,R4> forEach3(Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                    BiFunction<? super T, ? super R1, ReaderWriterState<R,W,S,R2>> value3,
                                                    Function3<? super T, ? super R1, ? super R2, ? extends R4> yieldingFunction)
focal_class.class_method_signature: ReaderWriterState.forEach2(Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                BiFunction<? super T, ? super R1, ? extends R4> yieldingFunction)
focal_class.full_signature: public ReaderWriterState<R,W,S,R4> forEach2(Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                BiFunction<? super T, ? super R1, ? extends R4> yieldingFunction)
focal_class.identifier: forEach2
focal_class.modifiers: public
focal_class.parameters: (Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                BiFunction<? super T, ? super R1, ? extends R4> yieldingFunction)
focal_class.return: ReaderWriterState<R,W,S,R4>
focal_class.signature: ReaderWriterState<R,W,S,R4> forEach2(Function<? super T, ReaderWriterState<R,W,S,R1>> value2,
                                                BiFunction<? super T, ? super R1, ? extends R4> yieldingFunction)
focal_class.class_method_signature: ReaderWriterState.rws(BiFunction<? super R, ? super S,? extends Tuple3<W,S, T>> runF, Monoid<W> monoid)
focal_class.full_signature: public static ReaderWriterState<R,W,S,T> rws(BiFunction<? super R, ? super S,? extends Tuple3<W,S, T>> runF, Monoid<W> monoid)
focal_class.identifier: rws
focal_class.modifiers: public static
focal_class.parameters: (BiFunction<? super R, ? super S,? extends Tuple3<W,S, T>> runF, Monoid<W> monoid)
focal_class.return: ReaderWriterState<R,W,S,T>
focal_class.signature: ReaderWriterState<R,W,S,T> rws(BiFunction<? super R, ? super S,? extends Tuple3<W,S, T>> runF, Monoid<W> monoid)
focal_class.class_method_signature: ReaderWriterState.narrowK(Higher<Higher<Higher<Higher<rws, R>, W>, S>, T> hkt)
focal_class.full_signature: public static ReaderWriterState<R,W,S,T> narrowK(Higher<Higher<Higher<Higher<rws, R>, W>, S>, T> hkt)
focal_class.identifier: narrowK
focal_class.modifiers: public static
focal_class.parameters: (Higher<Higher<Higher<Higher<rws, R>, W>, S>, T> hkt)
focal_class.return: ReaderWriterState<R,W,S,T>
focal_class.signature: ReaderWriterState<R,W,S,T> narrowK(Higher<Higher<Higher<Higher<rws, R>, W>, S>, T> hkt)
focal_class.class_method_signature: ReaderWriterState.widen(ReaderWriterState<R,W,S,T> narrow)
focal_class.full_signature: public static Higher<Higher<Higher<Higher<rws, R>, W>, S>, T> widen(ReaderWriterState<R,W,S,T> narrow)
focal_class.identifier: widen
focal_class.modifiers: public static
focal_class.parameters: (ReaderWriterState<R,W,S,T> narrow)
focal_class.return: Higher<Higher<Higher<Higher<rws, R>, W>, S>, T>
focal_class.signature: Higher<Higher<Higher<Higher<rws, R>, W>, S>, T> widen(ReaderWriterState<R,W,S,T> narrow)
focal_method.body: public <R2> ReaderWriterState<R,W,S,R2> map(Function<? super T,? extends R2> mapper) {
  
          return mapState(t -> tuple(t._1(), t._2(), mapper.apply(t._3())));
      }
focal_method.class_method_signature: ReaderWriterState.map(Function<? super T,? extends R2> mapper)
focal_method.full_signature: public ReaderWriterState<R,W,S,R2> map(Function<? super T,? extends R2> mapper)
focal_method.identifier: map
focal_method.invocations: mapState tuple _1 _2 apply _3
focal_method.modifiers: public
focal_method.parameters: (Function<? super T,? extends R2> mapper)
focal_method.return: ReaderWriterState<R,W,S,R2>
focal_method.signature: ReaderWriterState<R,W,S,R2> map(Function<? super T,? extends R2> mapper)