title: Why does the `type` function in Clojure return results associated to Java, to Clojure itself, and to no language?
body: <p>I am using Clojure, Emacs, and Cider.</p>
  <p>In the Cider REPL, the <code>type</code> function returns the following:</p>
  <pre class="lang-lisp prettyprint-override"><code>user&gt; (type true)
  java.lang.Boolean
  
  user&gt; (type '(1 2))
  clojure.lang.PersistentList
  
  user&gt; (type nil)
  nil
  
  </code></pre>
  <p>From a higher level of understanding, I know there is an integration between Clojure and Java. I thought it was a way for Clojure to import Java libraries. But, the connection seems to go beyond that.</p>
  <p>But, why <code>type</code> sometimes make a reference to the Java language?  Why it makes a reference to the Clojure language? And why sometimes it makes no reference to no language at all (<code>nil</code>)?</p>