I checked the code and the TransientIntSet supports the contain method of the TransientIntSet interface which could be used directly and return the correct value but it is definitely not idiomatic to recur to interop nor have to look that around for this specific case.

certainly "contains?" behavior cannot be fixed inside this library. However this ticket is about using transient sets as functions. (see description examples)

Clojure's transient set allow looking up a key if the set is used as a function. Nevertheless, data.int-map transient-sets internally uses "contains?" whenever it is invoked as a function. Thus breaking the expected behavior of sets.

Clojure 1.9 solved the issue of transients by adding a new interface with the necessary methods. So I the workaround described here is no longer valid and I think that the general expectation would be for int-map to implement that interface as well