for posterity: it doesn't actually matter, because `nil`, `Nil`, and `NULL` are all `#define`d as `__DARWIN_NULL`, which is `#define`d as `((void *)0)`.

semantically, it's generally standard practice to use `nil` for instances, `Nil` for classes, and `NULL` for any other pointer (including things like `NSError **`) but the technical difference between them is literally `nil`.