test_class.declarator: ex = Executors.newFixedThreadPool(1)
test_class.original_string: Executor ex = Executors.newFixedThreadPool(1);
test_class.type: Executor
test_class.var_name: ex
test_class.declarator: re = new RuntimeException()
test_class.original_string: RuntimeException re = new RuntimeException();
test_class.type: RuntimeException
test_class.var_name: re
test_class.declarator: closed = false
test_class.original_string: boolean closed = false;
test_class.type: boolean
test_class.var_name: closed
test_class.declarator: serviceMock
test_class.modifier: @Mock
test_class.original_string: @Mock
      Function<Integer, String> serviceMock;
test_class.type: Function<Integer, String>
test_class.var_name: serviceMock
test_class.file: cyclops-pure/src/test/java/cyclops/reactive/IOMonadTest.java
test_class.identifier: IOMonadTest
test_case.body: @Test
      public void async(){
          assertThat(IO.fromPublisher(Future.of(()->10, ex))
              .map(i->i+1)
              .run().orElse(-1),equalTo(11));
      }
test_case.class_method_signature: IOMonadTest.async()
test_case.full_signature: @Test public void async()
test_case.identifier: async
test_case.invocations: assertThat orElse run map fromPublisher of equalTo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void async()
focal_class.declarator: monad
focal_class.modifier: private final
focal_class.original_string: private final Monad<W> monad;
focal_class.type: Monad<W>
focal_class.var_name: monad
focal_class.declarator: pub
focal_class.modifier: private final
focal_class.original_string: private final Higher<W,T> pub;
focal_class.type: Higher<W,T>
focal_class.var_name: pub
focal_class.declarator: toPublsher
focal_class.modifier: private final
focal_class.original_string: private final ToPublsher<W> toPublsher;
focal_class.type: ToPublsher<W>
focal_class.var_name: toPublsher
focal_class.declarator: fromPublsher
focal_class.modifier: private final
focal_class.original_string: private final FromPublsher<W> fromPublsher;
focal_class.type: FromPublsher<W>
focal_class.var_name: fromPublsher
focal_class.declarator: reactiveSeqConverter = new Converter<reactiveSeq>() {
          @Override
          public <T> Function<? super Publisher<? extends T>, ? extends Higher<reactiveSeq, T>> fromPublisherFn() {
              return Spouts::from;
          }
  
          @Override
          public Monad<reactiveSeq> monad() {
              return PublisherInstances.monad();
          }
  
          @Override
          public <T> Function<Higher<reactiveSeq, T>, Publisher<T>> toPublisherFn() {
              return ReactiveSeq::narrowK;
          }
      }
focal_class.modifier: public static
focal_class.original_string: public static Converter<reactiveSeq> reactiveSeqConverter = new Converter<reactiveSeq>() {
          @Override
          public <T> Function<? super Publisher<? extends T>, ? extends Higher<reactiveSeq, T>> fromPublisherFn() {
              return Spouts::from;
          }
  
          @Override
          public Monad<reactiveSeq> monad() {
              return PublisherInstances.monad();
          }
  
          @Override
          public <T> Function<Higher<reactiveSeq, T>, Publisher<T>> toPublisherFn() {
              return ReactiveSeq::narrowK;
          }
      };
focal_class.type: Converter<reactiveSeq>
focal_class.var_name: reactiveSeqConverter
focal_class.declarator: futureConverter = new Converter<future>() {
          @Override
          public <T> Function<? super Publisher<? extends T>, ? extends Higher<future, T>> fromPublisherFn() {
              return p->Future.fromPublisher(p);
          }
  
          @Override
          public Monad<future> monad() {
              return FutureInstances.monad();
          }
  
          @Override
          public <T> Function<Higher<future, T>, Publisher<T>> toPublisherFn() {
              return Future::narrowK;
          }
      }
focal_class.modifier: public static
focal_class.original_string: public static Converter<future> futureConverter = new Converter<future>() {
          @Override
          public <T> Function<? super Publisher<? extends T>, ? extends Higher<future, T>> fromPublisherFn() {
              return p->Future.fromPublisher(p);
          }
  
          @Override
          public Monad<future> monad() {
              return FutureInstances.monad();
          }
  
          @Override
          public <T> Function<Higher<future, T>, Publisher<T>> toPublisherFn() {
              return Future::narrowK;
          }
      };
focal_class.type: Converter<future>
focal_class.var_name: futureConverter
focal_class.file: cyclops-pure/src/main/java/cyclops/reactive/IOMonad.java
focal_class.identifier: IOMonad
focal_class.interfaces: implements IO<T>
focal_class.class_method_signature: IOMonad.ioMonad(Monad<W> monad, Higher<W,T> hkt, ToPublsher<W> to, FromPublsher<W> from)
focal_class.full_signature: public static IOMonad<W,T> ioMonad(Monad<W> monad, Higher<W,T> hkt, ToPublsher<W> to, FromPublsher<W> from)
focal_class.identifier: ioMonad
focal_class.modifiers: public static
focal_class.parameters: (Monad<W> monad, Higher<W,T> hkt, ToPublsher<W> to, FromPublsher<W> from)
focal_class.return: IOMonad<W,T>
focal_class.signature: IOMonad<W,T> ioMonad(Monad<W> monad, Higher<W,T> hkt, ToPublsher<W> to, FromPublsher<W> from)
focal_class.class_method_signature: IOMonad.ioMonad(Converter<W>  converter,Higher<W,T> hkt)
focal_class.full_signature: public static IOMonad<W,T> ioMonad(Converter<W>  converter,Higher<W,T> hkt)
focal_class.identifier: ioMonad
focal_class.modifiers: public static
focal_class.parameters: (Converter<W>  converter,Higher<W,T> hkt)
focal_class.return: IOMonad<W,T>
focal_class.signature: IOMonad<W,T> ioMonad(Converter<W>  converter,Higher<W,T> hkt)
focal_class.class_method_signature: IOMonad.map(Function<? super T, ? extends R> s)
focal_class.full_signature: @Override public IO<R> map(Function<? super T, ? extends R> s)
focal_class.identifier: map
focal_class.modifiers: @Override public
focal_class.parameters: (Function<? super T, ? extends R> s)
focal_class.return: IO<R>
focal_class.signature: IO<R> map(Function<? super T, ? extends R> s)
focal_class.class_method_signature: IOMonad.flatMap(Function<? super T, IO<? extends R>> s)
focal_class.full_signature: @Override public IO<R> flatMap(Function<? super T, IO<? extends R>> s)
focal_class.identifier: flatMap
focal_class.modifiers: @Override public
focal_class.parameters: (Function<? super T, IO<? extends R>> s)
focal_class.return: IO<R>
focal_class.signature: IO<R> flatMap(Function<? super T, IO<? extends R>> s)
focal_class.class_method_signature: IOMonad.mergeMap(int maxConcurrency, Function<? super T, Publisher<? extends R>> s)
focal_class.full_signature: @Override public IO<R> mergeMap(int maxConcurrency, Function<? super T, Publisher<? extends R>> s)
focal_class.identifier: mergeMap
focal_class.modifiers: @Override public
focal_class.parameters: (int maxConcurrency, Function<? super T, Publisher<? extends R>> s)
focal_class.return: IO<R>
focal_class.signature: IO<R> mergeMap(int maxConcurrency, Function<? super T, Publisher<? extends R>> s)
focal_class.class_method_signature: IOMonad.publisher()
focal_class.full_signature: @Override public Publisher<T> publisher()
focal_class.identifier: publisher
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Publisher<T>
focal_class.signature: Publisher<T> publisher()
focal_class.class_method_signature: IOMonad.toString()
focal_class.full_signature: public String toString()
focal_class.identifier: toString
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_method.body: @Override
      public <R> IO<R> map(Function<? super T, ? extends R> s) {
          return new IOMonad<W,R>(monad,monad.map(s,pub),toPublsher,fromPublsher);
      }
focal_method.class_method_signature: IOMonad.map(Function<? super T, ? extends R> s)
focal_method.full_signature: @Override public IO<R> map(Function<? super T, ? extends R> s)
focal_method.identifier: map
focal_method.invocations: map
focal_method.modifiers: @Override public
focal_method.parameters: (Function<? super T, ? extends R> s)
focal_method.return: IO<R>
focal_method.signature: IO<R> map(Function<? super T, ? extends R> s)