>>834
どういうこと?

これはもちろん Java でもエラーにならない
int x = 1;
double x = 2.3;
System.out.println(x);

君の言っている再束縛ってどういう意味?もし
let x = 1 in
let x = 2.3 in
x
ということを言っているなら、これは上の Java と同じ。
次の lambda 式と同じで、二つの x は互いに無関係。
(lambda x -> (lambda x -> x) 2.3) 1

Java ではこれは書けないけど
int x = 1;
x = 2.3;

これと同様なことは x を mutable にして破壊的代入を行うということで、
ML でも無理だと思うのだけど。
動的型付け言語は変数に静的型を付けないので、もちろん普通にできる。