Its mainly for when say someone provides a functor that doesn't have requires or provides. Which they might do.