プログラミング言語における型とポリモーフィズムに関する論文を読んで、Scala を使用して型メンバーの同様の全称量化を表現できるのではないかと思いました。紙の例:
type GenericID = ∀A.A ↦ A
これは一般的な同一性関数の型であり、紙の言語Funでの次の例は正しかった:
value inst = fun(f: ∀a.a ↦ a) (f[Int], f[Bool])
value intId = fst(inst(id)) // return a function Int ↦ Int
Scalaで同様のことを表現する方法はありますか?
これは type constructor と同じではありません。これは、がジェネリック関数の型であるtype GenericId[A] = A => A
場合の型操作であるためです。∀A.A ↦ A