> The restriction on the currying of type synonyms is therefore
> a semantic restriction on types, not just a syntactic restriction on
> type expressions.
Exactly. But I don't think we need to complicate the kind
system by having special kinds for type synonyms.
In fact type synonyms can be sai
% You can apply any constructor e1 with a kind (k1 -> k2), be it a
% variable, constant, or application, to any other constructor e2 of
% kind k1, forming a (possibly partial) application (e1 e2), as described
% on pages 31--32 of the (draft) report. As you say, this permits currying.
Yes, but
| Are partial applications of data-types allowed then?
Yes they are, as described on pages 31--32 of the (draft) report.
| If they do, what kind of partial applications are allowed?
| Just the data-type identifier without arguments, or is it possible
| to use them curried (the kind (*->*)->*->*