import { type JsonRepr } from "https://deno.land/x/eitherway@0.10.0/lib/core/mod.ts";
Representation of how type T will be passed on to searialization to
JSON.stringify()
The square brackets are used to prevent distribution over unions where never is erased anyway and we can actuall match never, which is necessary for None
Reference: https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types