nil
はいいとしても、 let a: Int? = 42
は禁止して let a: Int? = .some(42)
を強制した方が色々問題起きなさそう。let a: Int? = 42?
とか。言語機能でサブタイピング提供してサブタイピング周りガチツヨな言語になって、その上でMaybeとunion Optionalとが合体した最強の型 そうなってくれるなら許しがあるし最高
なるほど・・・。 (edited)union enum Foo<T> { case a(Int) case b(T) }
Int|T
として振る舞えるとしてFoo<Foo<String>>
が Int|(Int|String)
になっちゃうとInt|String
と等価になってネストが消えちゃう・・・。union enum
の正しい仕様だとすると、 Optional
を unison
にしたら、ネストできなくなってしまう。