> In this case we can find all of the extrema. What is missing?

Though we can find all the extrema, we cannot check if they lie in the given interval or not. So, it won't make much sense to return something like `Interval(Min(*[extrema_and_boundary_values]), Max(*[extrema_and_boundary_values]))`.