sig
  val layout_file : string Pervasives.ref
  type layout_view = {
    lv_kind : string;
    lv_file : string;
    lv_atts : (string * string) list;
  }
  type layout_contents =
      [ `Notebook of Ed_layout.layout_notebook
      | `Paned of Ed_layout.layout_paned
      | `View of Ed_layout.layout_view ]
  and layout_paned = {
    lp_orientation : [ `HORIZONTAL | `VERTICAL ];
    lp_position : int;
    lp_children : Ed_layout.layout_contents * Ed_layout.layout_contents;
  }
  and layout_notebook = { ln_tabs : Ed_layout.layout_contents list; }
  type layout_window = {
    lw_x : int;
    lw_y : int;
    lw_w : int;
    lw_h : int;
    lw_contents : Ed_layout.layout_contents option;
  }
  type layout = Ed_layout.layout_window list
  val store_layout : string -> Ed_layout.layout -> unit
  val load_layout : string -> Ed_layout.layout_window list
  val layout_of_windows : Ed_gui.gui_windows -> Ed_layout.layout
  val create_windows_of_layout : Ed_layout.layout -> unit
end