(let [n 3 b (byte-array n) p (proxy [java.io.InputStream] [] (read [] -1))] ;; Returns -1, which is expected. (. p read) ;; Throws clojure.lang.AFn.throwArity, unexpected; should call ;; InputStream.read(byte[], int, int) (. p (read b 0 n)))