Hi,
To mark the mid-GSoC evaluations, I'm happy to release another
core.typed version.
Highlights:
- type checking speed enhancements
- some usages of `every?` now update local types as expected
- currently works best on things exactly of type IPersistentCollection (aka. a new alias Coll)
eg. cast a (Coll Any) to (Coll Number):
(cf (let [a (ann-form [] (Coll Any))]
(assert (every? number? a))
a))
;=> (Coll Number)
- combining keys/vals with every? updates an IPersistentMap type as you would expect
eg. cast a (IPM Any Any) to (IPM Number Any)
(cf (let [a (ann-form {} (IPersistentMap Any Any))]
(assert (every? number? (keys a)))
a))
;=> (IPersistentMap Number Any
- New `Extends` type constructor can say which interfaces a type does *not* extend (helps fix some unsoundness)
Thanks,
Ambrose