Saya merancang bahasa pemrograman fungsional sederhana yang diketik secara statis sebagai pengalaman belajar.
Tampaknya sistem tipe yang telah saya implementasikan sejauh ini dapat (dengan sedikit kerja ekstra) menggabungkan tipe persimpangan dan gabungan, misalnya Anda dapat memiliki:
<Union String Integer>
<Union Integer Foo>
- Perpotongan kedua tipe di atas akan menjadi dataran
Integer
- Persatuan kedua tipe itu akan menjadi
<Union String Integer Foo>
Fakta bahwa ini mungkin, tentu saja, tidak perlu berarti itu adalah ide desain yang bagus. Secara khusus, saya agak khawatir tentang kesulitan implementasi menjaga jenis terlepas dan / atau menangani tumpang tindih.
Apa pro / kontra dari menggabungkan fitur-fitur tersebut dalam sistem tipe?