Curious how core.typed compares to what is being worked on in the Elixir world? https://hexdocs.pm/elixir/main/gradual-set-theoretic-types.html Are they based around different ideas, or similar?
Assuming it follows from the rest of Castagna's work, both have similar goals in terms of giving the programmer expressive types to specify programs that manipulate data. However, the core semantic subtyping algorithm is much more subtle and powerful than Typed Clojure's subtyping.
Typed Clojure has no gradual typing.
Tho this application of "gradual typing" seems much different to what I'm used to.
We have unions, intersections, and negations, but use a much more naive subtyping algorithm (presumably).
Semantic subtyping maps types onto sets and then use set membership to determine compatible types. Typed Clojure tries to normalize types into a normal form and then subtyping mostly deals with those cases.