References https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/ How types make hard problems easy