re-frame 2025-10-22

Hmm. I don't see anything wrong with the code.

neither did I 🙂 But if I understood the situation correctly, the problem is that the subscriptions/reactions were never deferred, at least not within that subscription. https://github.com/day8/re-frame/blob/492838f859261829e1d4ff5aa0aaa91729a08816/src/re_frame/subs.cljc#L162

replacing identity with (fn [args] (println (type args))) => LazySeq 💡

Oh wow, good catch. I'd say it definitely should be mapv there.

Thanks, I've been meaning to look at that piece. There's also this issue with it - https://github.com/day8/re-frame/issues/545

Cool! Had no idea about multimethods. Yet another reason to avoid them where no openness is needed.

Yeah, but it's sad because I really like using multimethods. The first workaround isn't so bad.

I stopped liking them as soon as I had to debug them. :D Nice when you need extensibility, but a huge liability as compared to case/cond otherwise.

I found a new fun way to accidentally break updating a while ago. I did something a bit like

(rf/reg-sub ::foo-and-bar-and-quuz
  (fn [_]
    [(rf/subscribe [::foo])
     (rf/subscribe [::bar])
     (rf/subscribe [::quuz])])
  :-> identity))
iow. I wanted to return a coll of the return values of those three subs. It almost worked, but not quite.