I'll instead quote [that article](http://www.mikeash.com/pyblog/friday-qa-2012-12-14-objective-c-pitfalls.html), search for "Casting to BOOL" for a nice explanation. The pointer stuff isn't really relevant here, but the fact that `git_odb_exists` could return something else that `0`(=`NO`) or `1` (=`YES`) makes me cautious because you have to be extra careful when doing comparisons. See `objc/objc.h` for the actual define, which makes me think that the Clang guys are already devising a fix for that ;-).