Hi,
The latest release of the type checker has a bunch of improvements. A lot of them have been driven by attempting to type check malli's implementation in both Clojure and ClojureScript. Here's my work in progress: https://github.com/frenchy64/malli/pull/1/files
Highlights of 1.0.26:
- support `reify`, `satisfies` in Clojure
- support `defprotocol`, `implements?` in ClojureScript
- support annotating composite predicates like `(defn sym-or-kw? [a] (or (symbol? a) (keyword? a)))`
- new macro `typed.clojure.jvm/override-class` exposed to users to annotate Java classes. The base environment now uses this macros, so look to there for examples: https://github.com/typedclojure/typedclojure/blob/main/typed/lib.clojure/src/typed/ann/clojure/jvm.clj
See the full list here: https://github.com/typedclojure/typedclojure/blob/main/CHANGELOG.md#1026
See here to get started with Typed Clojure https://github.com/typedclojure/typedclojure#usage-overview
Thanks,
Ambrose