FWIW, I didn't know that [clang implicitly turns `id` into `instancetype`][so1] for instance methods beginning with `retain`, `autorelease`, `init`, or `self`. It looks like this thread is in-line with [Bill Bumgarner's answer][so2] that even though the compiler will help you, an explicit `instancetype` is preferred.

Just food for thought that was new to me and probably old for you guys.

[so1]: http://stackoverflow.com/questions/16846032/should-instancetype-be-used-on-alloc-new-init-methods
[so2]: http://stackoverflow.com/a/16846135