Result
tstype Result<T, E> = (T & { ok: true }) | (E & { ok: false });
tstype Result<T, E> = { ok: true; value: T } | { ok: false; value: E}