let best_inherited_method data klass_name method_name actuals this =
    let methods = class_ancestor_method_lookup data klass_name method_name this in
    match best_matching_signature data actuals methods with
        | [] -> None
        | [func] -> Some(func)
        | _ -> raise(Invalid_argument("Multiple methods named " ^ method_name ^ " of the same signature inherited in " ^ klass_name ^ "; Compiler error."))