Shall I always need to throw `ArgumentNullException` when an extension method is called on null? (Extension methods in `Enumerable` throw `ArgumentNullException`.) I would like to have clarification on this. If the answer is both "Yes" and "No" please present both the cases.