title: ClojureScript equivalent for this JavaScript code
body: <p>I am trying to use <a href="https://github.com/estools/esrecurse" rel="nofollow noreferrer">esrecurse</a> in my ClojureScript code, I have a working JavaScript snippet that looks like this</p>
  
  <pre><code>esrecurse.visit(ast, {
    Literal: console.log
  });
  </code></pre>
  
  <p>and I'm trying to come up with the equivalent for ClojureScript, but whenever I run it <code>esrecurse.visit</code> is not called</p>
  
  <pre><code>#(.visit esrecurse % (js-obj "Literal" (fn [node] node)))
  </code></pre>
  
  <p>where <code>%</code> is the AST. I am not sure what I'm doing wrong honestly, I've also tried passing the second argument in a different way, like</p>
  
  <pre><code>#(.visit esrecurse (first (vals %)) {:Literal (fn [node] node)})
  </code></pre>
  
  <p>without success.</p>
  
  <p>I'm invoking <code>mutate?</code> like this </p>
  
  <pre><code>(defn mutate?
    "applies a mutation to the ASTs,
    returns the mutated, or non mutated, ASTs"
    [asts]
    (map
     #(.visit esrecurse % #js {:Literal print})
     asts))
  
  (mutate? (reader/to-ast (reader/read "./test/example-project/lib")))
  </code></pre>
  
  <p>But with both this version and mine I still don't get anything, I also tried passing <code>identity</code> instead of <code>print</code> but I just got <code>(nil)</code> as result.</p>