この記事には Clojure で core.typed を使おうとしたときに感じることがまとめられているので, core.typed を使うかどうか考えている人は,一通り読んでみると良いでしょう。 core.typed によってもたらされる型システムの安心感は何物にも代え難いのですが, core.typed 導入による不便もあるので,利得と損失とどちらが大きいかを考えて導入するべきです。 CircleCI のチームは両者を比較して core.typed を使うのをやめています。
この記事でも指摘されている core.typed を使うときの不便なところには,
コンパイルが遅くなる
Scala みたいになる
だったら始めから Scala でよいのでは?
Clojure 言語を全てサポートしているわけではない
たとえば comp 関数を扱えない
普通サードパーティのライブラリは core.typed サポートしていない
楽をしようと思って使うライブラリに,自分で型情報を付加するつらみ
があります。
CircleCI のチームは代替策として Prismatic Schema を使うことにしたそうです。 Prismatic Schema は型検査をするのではなく,データ型のバリデーションをするライブラリです。 この記事で指摘している core.typed の不便なところもなく,使いたいところだけに schema を書けるので,段階的な導入にも向いています。
私は, core.typed よりも Prismatic Schema のほうが好みです。










