Not that you need such a hack since there seems to have been a slew of
folks coming up with extentions to HM that play nice. But I was
wondering if one could approximate
/* horrible pseudocode */
id x = x : 'a -> 'a.
foo i:int s:string = Pair(id i, id s) : int -> string ->
Pair(int,string).
in regular old non-System-F supporting HM systems by generating (sorta
like C++ template expansion) a new version of id for every type it is
applied to in foo. Sort of a macro expansion.
?