I am seeking information on the scope of type hints in Clojure, for instance, if I write
(defn big-add [^BigInteger x y] (.add x y))
is that the same as
(defn big-add [^BigInteger x ^BigInteger y] (.add x y))
? Suppose I write
(defn big-sum
([] BigInteger/ZERO)
([^BigInteger x] x)
([^BigInteger x & more] (.add x (apply big-sum more) )))
Does Clojure assume that more is full of BigInteger? Suppose I want to tell it not? Would I do something like
(defn foo [^BigInteger x & ^Long more] ...)
?