(defmacro lol2 []
(let [a (list `typed/Option `typed/AnyInteger)]
`(fn [] :- ~a 1)))
(defmacro lol []
`(fn [] :- (typed/Option typed/AnyInteger) 1))
(clojure.core.typed/def lol*2 :- [-> (typed/Option typed/AnyInteger)]
(lol2))
(clojure.core.typed/def lol* :- (typed/Option typed/AnyInteger)
(lol))
I put this code in namespace A, both typecheck without problem.
When A is depended on by namespace B, when B is checked
lol*2 is completely fine but lol* crashes with
"Bad type syntax: (clojure.core.typed/Option clojure.core.typed/AnyInteger)"
The following works fine.
(defmacro lol**3 []
`(fn [] :- typed/AnyInteger 1))
(clojure.core.typed/def lol*3 :- typed/AnyInteger
(lol**3))