export type Err = { kind: 'Err' value: T isErr: true isOk: false } export type Ok = { kind: 'Ok' value: T isErr: false isOk: true } export type Result = Err | Ok export const Err = (value: E): Err => { const err: Err = { kind: 'Err', value, isErr: true, isOk: false, } return err } export const Ok = (value: T): Result => { const ok: Ok = { kind: 'Ok', value, isErr: false, isOk: true, } return ok }