Type Synonyms with Type Variables
I'd like to be able to define type synonyms containing variables, for instance:
:: S a :=== t a b | C t
The function type
f :: (S x) -> S x | C2 x
Should then be equivalent with:
f :: (t a b) -> t2 a c | C t & C2 a & C t2