Type Inference Zoo

109 points 3 comments 4 days ago
dmkolobov

It is crazy how much work comes out of Bruno Oliveira’s research groups.

Another cool online thing that exists is CP, a language with disjoint intersection and union types:

https://github.com/yzyzsun/CP-next

gavinray

TypeScript has this functionality.

Additionally, Scala 3 does as well, including support for these generic "Type-Lambda" expressions I saw in one of the examples on the playground:

https://beta.plground.org/jnclma/CP_tutorial

  printNum = trait implements ExpSig<Eval => Print> {
In Scala 3, this would be roughly:

  trait ExpSig[F[_]]
  object printNum extends ExpSig[[A] =>> Eval[A] => Print]
https://docs.scala-lang.org/scala3/reference/new-types/type-...
flashgordon

This is amazing. I've been wanting to do this for ages (even tried a few times and failed a few times). Great to see this.

Made by @calebRussel