a hardware abstraction library in clojure