Given at the swift.map #5 meetup in Poznań on 26.06.2018
Sample code: https://github.com/siejkowski/swift.map.5
References:
* Yasuhiro Inami's talk on Result vs Result: https://speakerdeck.com/inamiy/result-v-dot-s-result-t-e-english
* Elviro Rocca's talk on protocol based monad transformers: https://www.youtube.com/watch?v=Zmb86zblcto
* Elviro Rocca's library using the approach presented above: https://github.com/facile-it/FunctionalKit
* Yasuhiro Inami's talk on Higher-Kinded Types: https://speakerdeck.com/inamiy/swiftdegao-kaindoduo-xiang
* Yasuhiro Inami's library implementing HKT: https://github.com/inamiy/HigherKindSwift