https://syndicode.com/2018/06/07/pros-and-cons-of-functional-programming/ https://arrow-kt.io/docs/patterns/monads/