Remix.run Logo
Type Inference Zoo(zoo.cuichen.cc)
111 points by mpweiher 4 days ago | 3 comments
dmkolobov 10 hours ago | parent | next [-]

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 an hour ago | parent [-]

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 12 hours ago | parent | prev [-]

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.