test_class.file: cyclops-pure/src/test/java/cyclops/control/StateTest.java
test_class.identifier: StateTest
test_case.body: @Test
      public void run(){
          State<String,Integer> state = State.state(s-> Tuple.tuple(s,10));
          assertThat(state.run("hello"),equalTo(Tuple.tuple("hello",10)));
      }
test_case.class_method_signature: StateTest.run()
test_case.full_signature: @Test public void run()
test_case.identifier: run
test_case.invocations: state tuple assertThat run equalTo tuple
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void run()
focal_class.declarator: runState
focal_class.modifier: private final
focal_class.original_string: private final Function1<S, Free<supplier,Tuple2<S, T>>> runState;
focal_class.type: Function1<S, Free<supplier,Tuple2<S, T>>>
focal_class.var_name: runState
focal_class.file: cyclops-pure/src/main/java/cyclops/control/State.java
focal_class.identifier: State
focal_class.interfaces: implements Higher2<state,S,T>
focal_class.class_method_signature: State.run(S s)
focal_class.full_signature: public Tuple2<S, T> run(S s)
focal_class.identifier: run
focal_class.modifiers: public
focal_class.parameters: (S s)
focal_class.return: Tuple2<S, T>
focal_class.signature: Tuple2<S, T> run(S s)
focal_class.class_method_signature: State.eval(S s)
focal_class.full_signature: public T eval(S s)
focal_class.identifier: eval
focal_class.modifiers: public
focal_class.parameters: (S s)
focal_class.return: T
focal_class.signature: T eval(S s)
focal_class.class_method_signature: State.get()
focal_class.full_signature: public static State<S, S> get()
focal_class.identifier: get
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: State<S, S>
focal_class.signature: State<S, S> get()
focal_class.class_method_signature: State.transition(Function<? super S,? extends S> f)
focal_class.full_signature: public static State<S, Nothing> transition(Function<? super S,? extends S> f)
focal_class.identifier: transition
focal_class.modifiers: public static
focal_class.parameters: (Function<? super S,? extends S> f)
focal_class.return: State<S, Nothing>
focal_class.signature: State<S, Nothing> transition(Function<? super S,? extends S> f)
focal_class.class_method_signature: State.transition(Function<? super S,? extends S> f, T value)
focal_class.full_signature: public static State<S, T> transition(Function<? super S,? extends S> f, T value)
focal_class.identifier: transition
focal_class.modifiers: public static
focal_class.parameters: (Function<? super S,? extends S> f, T value)
focal_class.return: State<S, T>
focal_class.signature: State<S, T> transition(Function<? super S,? extends S> f, T value)
focal_class.class_method_signature: State.combine(State<S, T2> combine, BiFunction<? super T, ? super T2, ? extends R> combiner)
focal_class.full_signature: public State<S, R> combine(State<S, T2> combine, BiFunction<? super T, ? super T2, ? extends R> combiner)
focal_class.identifier: combine
focal_class.modifiers: public
focal_class.parameters: (State<S, T2> combine, BiFunction<? super T, ? super T2, ? extends R> combiner)
focal_class.return: State<S, R>
focal_class.signature: State<S, R> combine(State<S, T2> combine, BiFunction<? super T, ? super T2, ? extends R> combiner)
focal_class.class_method_signature: State.map(Function<? super T,? extends R> mapper)
focal_class.full_signature: public State<S, R> map(Function<? super T,? extends R> mapper)
focal_class.identifier: map
focal_class.modifiers: public
focal_class.parameters: (Function<? super T,? extends R> mapper)
focal_class.return: State<S, R>
focal_class.signature: State<S, R> map(Function<? super T,? extends R> mapper)
focal_class.class_method_signature: State.mapState(Function<Tuple2<S,T>, Tuple2<S, R>> fn)
focal_class.full_signature: public State<S, R> mapState(Function<Tuple2<S,T>, Tuple2<S, R>> fn)
focal_class.identifier: mapState
focal_class.modifiers: public
focal_class.parameters: (Function<Tuple2<S,T>, Tuple2<S, R>> fn)
focal_class.return: State<S, R>
focal_class.signature: State<S, R> mapState(Function<Tuple2<S,T>, Tuple2<S, R>> fn)
focal_class.class_method_signature: State.suspended(Function1<? super S, Free<supplier,Tuple2<S, T>>> runF)
focal_class.full_signature: private static State<S, T> suspended(Function1<? super S, Free<supplier,Tuple2<S, T>>> runF)
focal_class.identifier: suspended
focal_class.modifiers: private static
focal_class.parameters: (Function1<? super S, Free<supplier,Tuple2<S, T>>> runF)
focal_class.return: State<S, T>
focal_class.signature: State<S, T> suspended(Function1<? super S, Free<supplier,Tuple2<S, T>>> runF)
focal_class.class_method_signature: State.flatMap(Function<? super T,? extends  State<S, R>> f)
focal_class.full_signature: public State<S, R> flatMap(Function<? super T,? extends  State<S, R>> f)
focal_class.identifier: flatMap
focal_class.modifiers: public
focal_class.parameters: (Function<? super T,? extends  State<S, R>> f)
focal_class.return: State<S, R>
focal_class.signature: State<S, R> flatMap(Function<? super T,? extends  State<S, R>> f)
focal_class.class_method_signature: State.constant(T constant)
focal_class.full_signature: public static State<S, T> constant(T constant)
focal_class.identifier: constant
focal_class.modifiers: public static
focal_class.parameters: (T constant)
focal_class.return: State<S, T>
focal_class.signature: State<S, T> constant(T constant)
focal_class.class_method_signature: State.forEach4(Function<? super T, ? extends State<S,R1>> value2,
                                                    BiFunction<? super T, ? super R1, ? extends State<S,R2>> value3,
                                                    Function3<? super T, ? super R1, ? super R2, ? extends State<S,R3>> value4,
                                                    Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R4> yieldingFunction)
focal_class.full_signature: public State<S,R4> forEach4(Function<? super T, ? extends State<S,R1>> value2,
                                                    BiFunction<? super T, ? super R1, ? extends State<S,R2>> value3,
                                                    Function3<? super T, ? super R1, ? super R2, ? extends State<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, ? extends State<S,R1>> value2,
                                                    BiFunction<? super T, ? super R1, ? extends State<S,R2>> value3,
                                                    Function3<? super T, ? super R1, ? super R2, ? extends State<S,R3>> value4,
                                                    Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R4> yieldingFunction)
focal_class.return: State<S,R4>
focal_class.signature: State<S,R4> forEach4(Function<? super T, ? extends State<S,R1>> value2,
                                                    BiFunction<? super T, ? super R1, ? extends State<S,R2>> value3,
                                                    Function3<? super T, ? super R1, ? super R2, ? extends State<S,R3>> value4,
                                                    Function4<? super T, ? super R1, ? super R2, ? super R3, ? extends R4> yieldingFunction)
focal_class.class_method_signature: State.forEach3(Function<? super T, ? extends State<S,R1>> value2,
                                               BiFunction<? super T, ? super R1, ? extends State<S,R2>> value3,
                                               Function3<? super T, ? super R1, ? super R2, ? extends R4> yieldingFunction)
focal_class.full_signature: public State<S,R4> forEach3(Function<? super T, ? extends State<S,R1>> value2,
                                               BiFunction<? super T, ? super R1, ? extends State<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, ? extends State<S,R1>> value2,
                                               BiFunction<? super T, ? super R1, ? extends State<S,R2>> value3,
                                               Function3<? super T, ? super R1, ? super R2, ? extends R4> yieldingFunction)
focal_class.return: State<S,R4>
focal_class.signature: State<S,R4> forEach3(Function<? super T, ? extends State<S,R1>> value2,
                                               BiFunction<? super T, ? super R1, ? extends State<S,R2>> value3,
                                               Function3<? super T, ? super R1, ? super R2, ? extends R4> yieldingFunction)
focal_class.class_method_signature: State.forEach2(Function<? super T, State<S,R1>> value2,
                                           BiFunction<? super T, ? super R1, ? extends R4> yieldingFunction)
focal_class.full_signature: public State<S,R4> forEach2(Function<? super T, State<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, State<S,R1>> value2,
                                           BiFunction<? super T, ? super R1, ? extends R4> yieldingFunction)
focal_class.return: State<S,R4>
focal_class.signature: State<S,R4> forEach2(Function<? super T, State<S,R1>> value2,
                                           BiFunction<? super T, ? super R1, ? extends R4> yieldingFunction)
focal_class.class_method_signature: State.tailRec(T initial, Function<? super T, ? extends  State<S,  ? extends Either<T, R>>> fn)
focal_class.full_signature: public static State<S, R> tailRec(T initial, Function<? super T, ? extends  State<S,  ? extends Either<T, R>>> fn)
focal_class.identifier: tailRec
focal_class.modifiers: public static
focal_class.parameters: (T initial, Function<? super T, ? extends  State<S,  ? extends Either<T, R>>> fn)
focal_class.return: State<S, R>
focal_class.signature: State<S, R> tailRec(T initial, Function<? super T, ? extends  State<S,  ? extends Either<T, R>>> fn)
focal_class.class_method_signature: State.state(Function<? super S,? extends Tuple2<S, T>> runF)
focal_class.full_signature: public static State<S, T> state(Function<? super S,? extends Tuple2<S, T>> runF)
focal_class.identifier: state
focal_class.modifiers: public static
focal_class.parameters: (Function<? super S,? extends Tuple2<S, T>> runF)
focal_class.return: State<S, T>
focal_class.signature: State<S, T> state(Function<? super S,? extends Tuple2<S, T>> runF)
focal_class.class_method_signature: State.of(S s)
focal_class.full_signature: public static State<S, Nothing> of(S s)
focal_class.identifier: of
focal_class.modifiers: public static
focal_class.parameters: (S s)
focal_class.return: State<S, Nothing>
focal_class.signature: State<S, Nothing> of(S s)
focal_class.class_method_signature: State.put(S s)
focal_class.full_signature: public static State<S, Nothing> put(S s)
focal_class.identifier: put
focal_class.modifiers: public static
focal_class.parameters: (S s)
focal_class.return: State<S, Nothing>
focal_class.signature: State<S, Nothing> put(S s)
focal_class.class_method_signature: State.narrowK2(final Higher2<state, S,T> t)
focal_class.full_signature: public static State<S,T> narrowK2(final Higher2<state, S,T> t)
focal_class.identifier: narrowK2
focal_class.modifiers: public static
focal_class.parameters: (final Higher2<state, S,T> t)
focal_class.return: State<S,T>
focal_class.signature: State<S,T> narrowK2(final Higher2<state, S,T> t)
focal_class.class_method_signature: State.narrowK(final Higher<Higher<state, S>,T> t)
focal_class.full_signature: public static State<S,T> narrowK(final Higher<Higher<state, S>,T> t)
focal_class.identifier: narrowK
focal_class.modifiers: public static
focal_class.parameters: (final Higher<Higher<state, S>,T> t)
focal_class.return: State<S,T>
focal_class.signature: State<S,T> narrowK(final Higher<Higher<state, S>,T> t)
focal_class.class_method_signature: State.widen(State<S,T> narrow)
focal_class.full_signature: public static Higher<Higher<state, S>, T> widen(State<S,T> narrow)
focal_class.identifier: widen
focal_class.modifiers: public static
focal_class.parameters: (State<S,T> narrow)
focal_class.return: Higher<Higher<state, S>, T>
focal_class.signature: Higher<Higher<state, S>, T> widen(State<S,T> narrow)
focal_method.body: public Tuple2<S, T> run(S s) {
          return SupplierKind.run(runState.apply(s));
      }
focal_method.class_method_signature: State.run(S s)
focal_method.full_signature: public Tuple2<S, T> run(S s)
focal_method.identifier: run
focal_method.invocations: run apply
focal_method.modifiers: public
focal_method.parameters: (S s)
focal_method.return: Tuple2<S, T>
focal_method.signature: Tuple2<S, T> run(S s)