It'd be useful to have compiler-checked type annotations in ML. One could for instance have ``` add ::: int * int -> int fun add (x, y) = x + y ``` Be rewritten to ``` fun add (x, y) = x + y val _ = add : int * int -> int ```