Why is Scala's Type system not a Library in Clojure

Viewed 840

I've heard people claim that:

  • Scala's type system is amazing (existential types, variant, co-variant)

  • Because of the power of macros, everything is a library in Clojure: (pattern matching, logic programming, non-determinism, ..)

Question:

If both assertions are true, why is Scala's type system not a library in Clojure? Is it because:

  • types are one of these things that do not work well as a library? [i.e. the changes would somehow have to threaded through every existing clojure library, including clojure.core?]

  • is Scala's notion of types fundamentally incompatible with clojure protocol / records?

  • ... ?

2 Answers
Related