alphabet order user object name instead type name param obj diagram base param obj diagram base invalid param object equal name posit neg name differ compar user object object obj object obj safe return type collat compar obj obj 