type t = {x:float; y:float; z:float} let dist2 p q = let x = p.x -. q.x and y = p.y -. q.y and z = p.z -. q.z in x *. x +. y *. y +. z *. z let fudge p = p (* Was: { x = Misc.fudge p.x; y = Misc.fudge p.y; z = Misc.fudge p.z } but exhibits a bug in ocamlopt 3.00 ! *)