システム FI では、教会数を使用して真の全加算関数を定義できます。
Haskell では、下の値のためにその関数を定義できません。たとえば、haskell では、x + y = x の場合、y がゼロであるとは言えません。x が底の場合、任意の y について x + y = x です。したがって、足し算は真の足し算ではなく、その近似値です。
C仕様では、すべてに有限サイズが必要であるため、CIではその関数を定義できません。そのため、C では可能な近似は Haskell よりもさらに悪いものになります。
したがって、次のようになります。
System F では、加算を定義することはできますが、完全な実装を行うことはできません (無限のハードウェアがないため)。
Haskell では、追加を定義することはできず (底のため)、完全な実装を持つことはできません。
C では、合計加算関数を定義することはできません (すべてのセマンティックが制限されているため) が、準拠した実装は可能です。
したがって、3 つの正式なシステム (Haskell、システム F、および C) はすべて、設計上のトレードオフが異なるようです。
では、どちらか一方を選択すると、どのような結果が生じるでしょうか。