式expの型をtyに制約する式である.
expは型tyより一般的な型である必要がある.
以下に例を示す.
# [] : int list;
val it = [] : int list
# 1 : intInf;
val it = 1 : intInf
# fn x => x : int;
val it = fn : int -> int
# fn x => x : ’a -> ’a;
val it = fn : [’a. (’a -> ’a) -> ’a -> ’a]
最後の例のようにtyは型変数を含んでも良い.
含まれる型変数は,インスタンス化されない.
また型変数のスコープは,特に型変数の宣言がなければ,その型変数が
現れるもっとも内側のval宣言全体である.
型変数の宣言およびそのスコープ規則については,第23.1
節で定義する.