type Either = { hasRight: boolean, left: T, right: U }; function eitherLeft(left: T): Either { return { hasRight: false, left: left, right: undefined }; } function eitherRight(right: U): Either { return { hasRight: true, left: undefined, right: right }; } export { Either, eitherLeft, eitherRight };