module X = struct type t = {a: int} let make a = {a} end module Y = struct type t = {b: int} let make b = {b} let of_x x = {b = x.X.a} end let int_of_x x = x.X.a let int_of_y y = y.Y.b