shouldn't this be done the conventional way, in ns?
```clojure
(:import [java.util.concurrent Semaphore])
```