Describe processes as type transformations, with inference that supports subtypes and parametric polymorphism. Create and query corresponding transformation graphs.
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...
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 subtypess in S
and soR3(Reg, s, Reg)
would be a subtype).This assumption has now been broken: we may have canonical types like
R2(Ord, Ratio)
, which means thatR2(Itv, Ratio)
is a subtype, andR2(Ord, Count)
, andR2(Itv, Count)
is a subtype of them both...