SML97になって,value polymorphismの制限がかかってちょっと使いづらく
なった.例えば
    fun id x = x
と定義しておいて
    val id' = id id
とするとエラーになる(SML90ではちゃんと定義できる).同様に
    fun curry f x y = f (x, y)
    fun twice (f, x) = f (f x)
と定義して
    val ctwice = curry twice
とするのもだめ.

うーむ.