export type Result = | { tag: "ok", value: T } | { tag: "error", error: E } export namespace Result { export function ok(value: T): Result { return { tag: "ok", value } } export function error(error: E): Result { return { tag: "error", error } } }