type
point =
{x : int; getx : point -> int; setx : point -> int -> point };;
let
point x0 =
{ x = x0;
getx = (
fun
self -> self.x);
setx = (
fun
self y -> {self
with
x = y});
} ;;