Open
Description
Given the current implementation, it is very easy reaching a situation where a scheduled transaction fails silently. Notably, the following example is counter-intuitive:
(let [x 42] (expand '(schedule 0 (def foo x))))
;; (schedule* 0 (compile (quote (def foo x))))
;; Of course, `x` is not defined anymore ; fails silently
I don't think this is fixable given that nothing is supposed to be evaluated in advance. Maybe we should remove schedule
and use only explicit templating with schedule*
.