etaoins / llambda

Scheme R7RS frontend for LLVM
Other
68 stars 6 forks source link

Fix intersection of indeterminate types #50

Open etaoins opened 9 years ago

etaoins commented 9 years ago

If two types don't have a strict super/subtype relationship they will currently intersect to the empty type. For example, the intersection of (Pairof <any> (Listof <any>)) and (Listof <number>) results in (U)where it should ideally be (Pairof <number> (Listof <number>)).

This may have to be resolved on a per-type basis. The list example could be resolved by intersecting the car and cdr of a pair separately.