method private remove_by f =
    let ( (child,_),new_option_list ) = LList.find_remove f option_list in
      self # remove_common child ;
      option_list <- new_option_list ;