import { Deferred, Effect, Schema } from "effect"
const options = Schema.Literal("optionA", "optionB")
const program = Effect.fn("test")(function*() {
const waitForSucceed = yield* Deferred.make<string>()
yield* Deferred.complete(waitForSucceed, Effect.succeed("test"))
const waitForFailed = yield* Deferred.make<true>()
yield* Deferred.complete(waitForFailed, Effect.succeed(true)) // FAILED
const waitForFailed2 = yield* Deferred.make<typeof options.Type>()
yield* Deferred.complete(waitForFailed2, Effect.succeed("optionA")) // FAILED
})
import { Deferred, Effect, Schema } from "effect"
const options = Schema.Literal("optionA", "optionB")
const program = Effect.fn("test")(function*() {
const waitForSucceed = yield* Deferred.make<string>()
yield* Deferred.complete(waitForSucceed, Effect.succeed("test"))
const waitForFailed = yield* Deferred.make<true>()
yield* Deferred.complete(waitForFailed, Effect.succeed(true)) // FAILED
const waitForFailed2 = yield* Deferred.make<typeof options.Type>()
yield* Deferred.complete(waitForFailed2, Effect.succeed("optionA")) // FAILED
})