implementation of OpenGL in Clojure, as functionally as possible