Lispには同像性であるという特性があります。つまり、言語実装(リスト)で使用されるコードの表現は、独自の目的でコードを表現したいプログラムでも利用でき、慣用的に使用されます。
関数型プログラミング言語の他の主要なファミリーであるMLは、型理論に基づいています。つまり、言語の実装にはコードのより複雑な表現が必要であり、許可されていることについてもカジュアルではないため、通常、内部表現は次のようになります。プログラムでは利用できません。たとえば、高階述語論理のプルーフチェッカーはMLファミリ言語で実装されることがよくありますが、通常は独自の型理論システムを実装し、MLコンパイラがすでに型理論システムを持っているという事実を事実上無視します。
これに例外はありますか?型理論に基づいて、プログラムで使用するためにコード表現を公開するプログラミング言語はありますか?