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 ;