Add QM.isEmpty
Fix bug using deprecated QM.extend