学習体験として、静的に型付けされた単純な関数型プログラミング言語を設計しています。
私がこれまでに実装した型システムは、(少し余分な作業を行うことで)交差型と共用体型を組み込むことができるようです。
<Union String Integer>
<Union Integer Foo>
- 上記の2つのタイプの共通部分はプレーンです
Integer
- 2つのタイプの結合は次のようになります
<Union String Integer Foo>
もちろん、これが可能であるという事実は、必ずしもそれが優れたデザインアイデアであることを意味するわけではありません。特に、型をばらばらにしたり、重複を処理したりすることの実装の難しさを少し心配しています。
このような機能を型システムに組み込むことの長所と短所は何ですか?