;;;; An import ring, which is refused and named. ;;;; ;;;; ring-a imports ring-b imports ring-c imports ring-a. Nothing about the ;;;; flat namespace makes this impossible — an earlier version let the ;;;; already-loaded check swallow the second arrival and the three packages ;;;; appeared to work — but a ring has no package order, and a definite ;;;; package order is what the macro expander will need, since a defmacro must ;;;; be compiled before anything that calls it. So it is refused, and the ;;;; refusal names the ring rather than the one import that happened to close ;;;; it last. (import a "pkgs/ring-a") (defn main [] i32 (print (a/step 1)) (println "") 0)