module Colour = struct type t = { red : int; green : int; blue : int } [@@fieldglass generate] end module Legacy = struct type t = { value : string } [@@lens generate] end let () = let colour = Colour.{ red = 3; green = 4; blue = 5 } in assert (Colour.red colour = 3); assert (Colour.green colour = 4); assert (Legacy.value Legacy.{ value = "grey" } = "grey")