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> {
trait ExpSig[F[_]] object printNum extends ExpSig[[A] =>> Eval[A] => Print]