method on_child_label_change =
      let s =
        match child1, child2 with
          NoneSome c
        | Some c, None -> label_of_contents c
        | NoneNone -> " "
        | Some c1, Some c2 -> Printf.sprintf "%s | %s"
              (label_of_contents c1) (label_of_contents c2)
      in
      self#set_label s