my implementation of merge sort in clojure