Add equality function parameter to QM.contains
Move function assertion in QM.partial for sooner fast-fail