*Feb 2025*
I was wondering what do those `^` mean with types, for example here:
```clojure
(doto ^BufferedWriter @writer
(sse/write-event! event-type data-lines opts)
(.flush))
```
It turns out these are called *type hints*. According to [Clojure docs](https://clojure.org/reference/java_interop#typehints), these are metadata tags that help the compiler improve performance. So for use cases where performance is not a priority, these could be ignored, as far as I can tell.
The type-hints are also related to the following code I've been seeing around a lot:
````clojure
(set! *warn-on-reflection* true)
````
Setting the flag to true will tell the compiler to print a warning if the compiler cannot resolve the type, which can be useful when looking for improvements in performance.