So there 's NULL, which is used for pointers in general, and nil, which is used for object pointers.
Now I see there's also Nil, which is used by lower-level Obj-C runtime functions like class_getProperty.
Is this somehow different from nil philosophically? (yes, I know they're all actually 0)
Why was it even introduced? Or, if Nil was first (which is likely), why was nil introduced?