pakoito
fun <A> effect(ctx: CoroutineContext, f: suspend () -> A): IO<A> = Effect(ctx, f) /** @see effect */ operator fun <A> invoke(ctx: CoroutineContext, f: suspend () -> A): IO<A> = effect(ctx, f)