Swiftにはジェネリクスという言語機能があり、 利用時の型が不確定なコードを書くことできます。 Swiftには厳密な型システムや、余計なメタ情報を持たない値型などがあるのに、 どのようにしてジェネリクスを動作させているのでしょうか。 このトークではそれを実現する言語機能である witness tableについて、 コンパイラのソースコードを追いながら解説します。