Result ほんと最近は↓さえあれば十分なんじゃないかと思ってる。 enum Result<Value> { case success(Value), failure(Error) func get() throws -> Value { ... } }throws/try でうまく書けないところで使うだけだから、すぐに get で throws/try の世界に戻して言語機能を活用した方がコードがシンプルになることが多い気がする。Result { try foo() } ができるようにするイニシャライザを付けるくらい。