#CLJ-1169 proposed patch
CLJ-1171 Tests for clojure.core/instance? compiler macro
CLJ-1169 fix unit-tests
CLJ-1171 Obey lexical scope for class argument in instance? compiler macro
CLJ-1171 Check arity in instance? compiler macro
Support retrieval of metadata from quoted empty literals, fixes #CLJ-1187
Add test for #CLJ-1187
CLJ-1185: Added support for reduced? to reductions
CLJ-1191: apropos returns symbols with ns qualifier if not in *ns*
CLJ-1193: Make bigint and biginteger work on all floats and doubles
Fix CLJ-1202.

Emit forms like (. foo (bar)) instead of (. foo bar), so that names
starting with a - don't look like field accesses.
CLJ-1204: Make hash consistent with = for all BigInteger values
Make Delay save and rethrow exceptions it encounters.
added check for Pattern in equiv, with tests. fixes CLJ-1182
Add foldable-seq
Improves RestFn and ArraySeq perf

Eliminates a call to java.lang.Class.getComponentType, since the
result will always Object.class and that makes downstream uses nops.
CLJ-1161: Remove version.properties from 'sources' JAR

The normal Clojure JAR contains a version.properties file with the
correct version number filled in during the build. Before this patch,
the '-sources' JAR also included a version.properties file in its raw
form. IDEs and other tools which include the '-sources' JAR on the
classpath can prevent Clojure from starting.

This patch filters the version.properties file out of the '-sources'
JAR.
new defonce hotness
Protocol, interface method declarations don't allow for varags.

Currently, for example

  (defprotocol FooBar
    (foo [this & more]))

compiles just fine, and & is interpreted as a usual argument that happens to be
named & without special meaning.  But clearly, the user wanted to specify a
varags parameter here.  The same applies to definterface.

Similarly, providing method implementations via defrecord, deftype, and reify
don't allow for varags (but dynamic extenions via extend do).

So this patch makes defprotocol and definterface throw an Exception if a user
tries to use varargs in method signatures.  Similarly, defrecord, deftype, and
reify throw an Exception if any method implementation arglist contains a
varargs argument.
Fix "~n@*"-directives in clojure.pprint/cl-format. Fixes #CLJ-1134.

This solves two issues as specified by #CLJ-1134. Issue #1 is solved by doing a
relative jump forward within `absolute-reposition` in cl_format.clj, line 114 by
switching `(- (:pos navigator) position)` with `(- position (:pos navigator))`.

Issue #2 is handled by changing the default `n`-parameter to `*` depending on
whether the `@`-prefix is placed or not. If it is placed, then `n` defaults to
0, otherwise it defaults to 1.

In addition, new tests have been appended to `test_cl_format.clj` to ensure the
correctness of this patch. The tests have been tested on the Common Lisp
implementation GNU CLISP 2.49, which presumably handle the `~n@*`
correctly. This patch and GNU CLISP returns the same output for each format
call, sans case for printed symbols; Common Lisp has case-insensitive symbols,
whereas Clojure has not.