import { combine } from '../combinators' import { CombinedCapabilities, Effect, Effects, Return } from '../Effect' import { Fiber, FiberFailure } from './Fiber' import { fork, Fork } from './fork' export function* forkAll>>( ...effects: A ): Effects & FiberFailure & Fork, ForkAll> { return (yield* combine(...effects.map(fork))) as ForkAll } export type ForkAll>> = { readonly [K in keyof A]: Fiber> }