>> 529,530
ありがと!

>> 529
前者のfと後者のfを比べると、「より一般的な型を推論している」という
意味では、明らかに後者の方がより一般的だけど?
それとも「一般的な型」の意味に齟齬がある?
日本語だと曖昧になるなら英語でも大丈夫すよ。

さらに、一般的な型という意味なら、こちらの方が。

def f[T <: { def +[U,V](other: U): V }](x: T, y: U) = x + y

これでFAでいいじゃん。
でも、Scalaはこれは許されないし、
許さないようにしているのは理由があるんだよね?それが知りたい。

>> 530
> Scalaの型システム上での型推論は単純なものですらかなり難しくなりえます。

そりゃ、探索空間が増えるから、比較すると難しいのは自明だけど、
「かなり」って主観的だし、もう一声!

実際のところ、どれくらい難しいの?

(a) 一般的なコーディングでも推論不可能なケースが多い
(b) 一般的なコーディングでは推論不可能なケースはまれだが存在する
(c) すべての推論可能だけどコンパイラ性能的に計算量が実用的でない
(d) すべての推論可能だけどコンパイルが実用範囲内で遅くなる
(e) すべての推論可能でコンパイル時間も問題無し