追記

ref (ref Hoge)直せた。mutable使えば十分でした。。
なんか、まだこの辺の文法に慣れてない感が大きいな。備忘のためにここにメモ。

# type tp = {mutable m : int};;
type tp = { mutable m : int; }
# let x = {m = 1};;
val x : tp = {m = 1}
# let y = x;;
val y : tp = {m = 1}
# y.m <- 2;  y;;
- : tp = {m = 2}
# x;;
- : tp = {m = 2}

この例で、x.mは1のままであると勘違いしてた。アイタタ。