// every coroutine can call CoExpressions, CoGenerators and CoConsumers:
public static <InT, OutT> OutT coCall(CoExpression<InT, OutT> target, InT value);
public static <OutT> OutT coCall(CoGenerator<OutT> target);
public static <InT> void coCall(CoConsumer<InT> target, InT value);
// only Coroutines can call coYield:
public static void coYield();
// a CoConsumer can return:
public final InT coReturn();
// CoExpressions and CoGenerators can return a value:
public final InT coReturn(OutT retValue);
|