interprete BIP semantics in Clojure