On second thought, maybe it should invoke `key-fn` or the existing code, not both.