clojure.spec.alpha
在Clojure核心库中起着核心作用,能够对宏以及函数进行仪器化。《code>Compiler.java依赖于clojure.spec.alpha
,在这个函数中调用宏扩展检查。这是一种巧妙交互,宏扩展检查
简单明显。
其他工具(如Malli)可以通过alter-var-root
(如malli.instrument/-strument!
中所示)对Clojure函数进行仪器化,但它们缺乏挂钩到宏扩展的能力。
如果Compiler.checkSpecs
有某种钩子允许使用像Malli这样的工具来仪器化宏,这将很好。