For an embedded DSL I'd like to remove all the core functions and require the ones I need one by one. Is it possible and how?
You can use the :refer-clojure
directive in your ns
declaration to specify only the core functions you need:
(ns my-namespace
(:refer-clojure :only [defn]))