What if `obj` is null. Probably should throw an `ArgumentNullException` in that case.