O'Reilly logo
  • billy8 thinks this is interesting:

Let’s create our abstraction for things-that-can-be-read-from-and-be-written-to as an interface, which we’ll call IOFactory.

From

Cover of Programming Clojure, 3rd Edition

Note

error in Clojure 1.9.0 nREPL using CIDER

  1. Caused by java.lang.IllegalArgumentException Interface methods must not contain '-'

user> (definterface IOFactory (^java.io.BufferedReader make-reader [this]) (^java.io.BufferedWriter make-writer [this]) )