deftype factories and object methods

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
updating tests to match deftype/defrecord split - only defrecord does hashCode/equals for you - direct implementers now included in extends? - types less dynamic, using per-test-named-types instead of reloading

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
InternalReduce

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
use .edit and .arr to refer to VecNode

- it is a deftype, not a defrecord
  - bug uncovered by InternalReduce tests

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
prefer more derived interface in protocol, fixes #302
Merge branch 'master' into patches
disable new reduce
Remove perf hacks from MethodImplCache, restore new reduce impl
fix instanceOf in statement contexts
new perf for protocols
gave defmulti defonce-like semantics, i.e. calling again won't trash multifn object, to help in reload scenarios
added remove-all-methods for multifns
use into in gen-class to avoid duplicate key error
Don't truncate large ratios when converting to bigint. Fixes #290.

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
Use bigint division when converting ratios to longs.

BigDecimal division is not precise enough for some large ratios yielding
incorrect results:

(long 10000000000000000000/3)
=> 3333333333333332992

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
munge genclass field names to keep Java side happy, see #104

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
Allow code run with clojure.main -e to use *in*. Fixes #299.

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
tests for #299

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
tests for case (#296)

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
IPersistentCollection methods for VecSeq (see #297)

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
reversible support for Vec #267

Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>