I wanted to minimize assumptions about the return type of attrFun. As long as the type can be comparable with ==, it should be good enough. Although, come to think of it, I think in D != is always translated into !opEquals, right? If so, then it should probably be written as != instead. :)