ポリモーフィズム
ポリモーフィックな型システムの研究は1960年代から始められている。クリストファー・ストレイチーの1967年論文Fundamental Concepts in Programming Languages(英語版)で、アドホック多相とパラメトリック多相という概念が初めて提唱されている。アドホック多相は「ALGOL68」で実践され、パラメトリック多相は「ML」の型システムで実践された。 1985年にピーター・ウェグナー(英語版)とルカ・カーデリ(英語版)は「Simula67」の継承+動的ディスパッチを説明するためのインクルージョン多相という概念を提唱した。これとストレイチー提唱の二つを合わせて三本柱にした概念が、ポリモーフィズムと呼ばれるようになっている。
1989年にオブジェクト指向の動的型付けを説明するためのロー多相(英語版)という概念がミッチェル・ワンド(英語版)の著作で提唱されているが、知名度は低い。同年にパラメトリック多相をモチーフにしたジェネリックプログラミングがアレクサンダー・ステパノフ(英語版)らの著作で提唱され、これはポリタイピズムとも呼ばれた。
1980年代の「Ada」はジェネリクスに型制約と称する有界量化(英語版)の概念を採用した。1990年代の「Haskell」はアドホック多相とジェネリクスを融合した型クラスを考案している。2003年の「Scala」はサブタイピング+ジェネリクスに共変性と反変性を導入した。