即レスサンクス。
自分はSMLNJ使ってるのでちょっと戸惑ったけど、後半のは

fun f (NONE)  = 0
  | f (SOME x) = x;

って意味でいいんですよね。
しかしこれってどういう使い道があるんだろう。
空列と空集合を明確に区別したい時とかかな‥