Error handling in TypeScript just becomes much safer when using Either type
I personally dislike asserting against unknown errors on try-catch blocks, and functions that return Promises just look like black boxes that can explode on any unhandled execution
Would rather use pattern matching everywhere, but unfortunately, that's not the case