Type mismatch issues with Deferred in Effect TypeScript library
I'm having an issue with Deferred results and their types. What am i doing wrong?
https://effect.website/play/#506331d4fa82
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
})src/main.ts(12,28): error TS2345: Argument of type 'Deferred<true, never>' is not assignable to parameter of type 'Deferred<boolean, never>'.
Type 'boolean' is not assignable to type 'true'.
src/main.ts(16,28): error TS2345: Argument of type 'Deferred<"optionA" | "optionB", never>' is not assignable to parameter of type 'Deferred<string, never>'.
Type 'string' is not assignable to type '"optionA" | "optionB"'.src/main.ts(12,28): error TS2345: Argument of type 'Deferred<true, never>' is not assignable to parameter of type 'Deferred<boolean, never>'.
Type 'boolean' is not assignable to type 'true'.
src/main.ts(16,28): error TS2345: Argument of type 'Deferred<"optionA" | "optionB", never>' is not assignable to parameter of type 'Deferred<string, never>'.
Type 'string' is not assignable to type '"optionA" | "optionB"'.https://effect.website/play/#506331d4fa82
