/**
* @since 2.0.0
*/
import type { NonEmptyReadonlyArray } from "./Array.ts"
import * as Cause from "./Cause.ts"
import * as Effect from "./Effect.ts"
import * as Exit from "./Exit.ts"
import type * as Pull from "./Pull.ts"
/**
* @since 2.0.0
* @category Models
*/
export type Take = NonEmptyReadonlyArray | Exit.Exit
/**
* @since 4.0.0
* @category Conversions
*/
export const toPull = (take: Take): Pull.Pull, E, Done> =>
Exit.isExit(take)
? Exit.isSuccess(take) ? Cause.done(take.value) : (take as Exit.Exit)
: Effect.succeed(take)