quangis / transforge

Describe processes as type transformations, with inference that supports subtypes and parametric polymorphism. Create and query corresponding transformation graphs.
GNU General Public License v3.0
2 stars 0 forks source link

Allow directed acyclic graph in type taxonomy #67

Closed nsbgn closed 2 years ago

nsbgn commented 2 years ago

The type taxonomy assumes that there is just one parent for any type. This is correct for base types, and it is also correct for the particular types that we assumed were canonical in the CCT algebra, since we never had more than one type parameter with a subtype (e.g. in R3(Reg, Qlt, Reg), Qlt had subtypes s in S and so R3(Reg, s, Reg) would be a subtype).

This assumption has now been broken: we may have canonical types like R2(Ord, Ratio), which means that R2(Itv, Ratio) is a subtype, and R2(Ord, Count), and R2(Itv, Count) is a subtype of them both...