`
(defprotocol TestProtocol
(tester [o]))
(let [t tester]
(defn another-tester [o]
(t o)))
(def another-tester2 tester)
(extend-protocol TestProtocol
String
(tester [o] (println "Strings work!")))
(another-tester "A") ;; Error
(another-tester2 "A") ;; Error
(tester "A") ;; Works fine
(let [t tester]
(defn another-tester [o]
(t o)))
(another-tester "A") ;; Works fine
(def another-tester2 tester)
(another-tester2 "A") ;; Works fine
(extend-protocol TestProtocol
Long
(tester [o] (println "Longs work!")))
(another-tester "A") ;; Works fine
(another-tester 3) ;; Error
(another-tester2 3) ;; Error
`