the functions missing in other js libraries, inspired by clojure