method create_view = fun ?(view = GTree.view ()) () ->
    let c1_column =
      GTree.view_column ~title:"First key"
        ~renderer:(GTree.cell_renderer_text [], [("text", c1)])
        ()
    and c2_column =
      GTree.view_column ~title:"Second key"
        ~renderer:(GTree.cell_renderer_text [], [("text", c2)])
        ()
    in
      c1_column#set_resizable true;
      c2_column#set_resizable true;
      i_int (view#append_column c1_column);
      i_int (view#append_column c2_column);
      view#set_model (Some self#coerce);
      { sv_view = view;
        sv_c1   = c1_column;
        sv_c2   = c2_column; }