An A* implementation in clojure with maze generator