Use core.cache for caching.
Add Keyword and Symbol aliases
alter-var-root annotation
Refactor for clarity. free-ops is unchecked, explicit because of typed deps
CTYP-89: Add rest arguments to heterogeneous vectors. Dotted vector WIP

New HVec constructor: (HVec [Number Long])

Syntax for rest args: '[Number Long *]
Assoc on the type level.

eg. (Assoc '{} ':a Number) <: '{:a Number}

Also works with type variables.

  (fn [a] (assoc a :a 1))

is of type

  (All [[x :< (Map Any Any)]]
    [x -> (Assoc x ':a Number)])

and can be applied

  (ann-form (f {:b 1}) '{:a Number :b Number})