Obviously, there is no strict requirement that all functors must return
boolean values. In fact, there is a series of classes in OEChem called
OEFunctions. They are predefined to be OEUnaryFunction and
OEBinaryFunction. They have template arguments for both the return
types and argument types and their operator() functions are not
necessarily const functions. OEPredicates inherit from OEFunctions.