// Smallest local errors-as-values shape. Expected failures travel as values; // only unexpected/programmer errors throw. export type Result = | { readonly ok: true; readonly value: T } | { readonly ok: false; readonly error: E }; export const ok = (value: T): Result => ({ ok: true, value }); export const err = (error: E): Result => ({ ok: false, error });