sig
  module type LAYOUT =
    sig
      type s
      val layout : Record.Safe.LAYOUT.s Record.layout
      val field :
        string ->
        'Record.Type.t -> ('a, Record.Safe.LAYOUT.s) Record.Field.t
      val seal : unit -> unit
      val layout_name : string
      val layout_id : Record.Safe.LAYOUT.s Record.Polid.t
      val make : unit -> Record.Safe.LAYOUT.s Record.t
    end
  val declare : string -> (module Record.Safe.LAYOUT)
end