added diff list predicate

once understood, it is just pure magic