FailableAn iOS version of Either monad returning either data T or NSErrorLicense: MITSwiftPostCache Uses NSCache for quick in-memory access Long-term storage uses disk with LRU eviction License: MITSwift