I don't know if this is a bug, but gather
does not work in conjunction with map-of
(m/rewrite {:a 1 :b 2}
(m/map-of (m/pred keyword? !ks) _) [!ks ...])
;; => [:a :b]
(m/rewrite {:a 1 :b 2}
(m/map-of (m/gather (m/pred keyword? !ks)) _) [!ks ...])
;; => nil
(m/rewrite [:a :b :c 1]
(m/gather (m/pred keyword? !ks) _) [!ks ...])
;; => [:a :b :c]
👍