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