#すみません、わたし論点が理解できてないのかもしれません。
#fromInteger 1 + 1.0 と書かなくても、1 + 1.0 でOKなのは、defaulting のおかげで曖昧性が解決されるから、だと思ってました。
#これが間違っているのか、論点がずれてるのか…?
#1 + 1.0 がエラーになった時代(?)のことを知らないから、話に入れていないのかもしれないです。
#あら。
#defaulting をころすと、fromInteger 1 + 1.0 もエラーになりますよね。
#(というわけで、1 + 1.0 がエラーにならないための主役は defaulting じゃないのかなぁ)
#ああ、すみません。fromInteger 1 + (1.0 :: Float) ならいいんだ。
#(またわからなくなった)
#あ。
#Prelude> default ()
Prelude> 1 + (1.0 :: Float)
2.0
#そうかー。
#なっとくしました。ありがとうございます>整数リテラルにはfromInteger が暗黙に付くようになってからはエラーにはならない
#もし、整数リテラルに fromInteger が暗黙のうちにはつかず、defaulting もなければ、
#1 + 1.0 はエラーしてします。エラーを避けるには、fromInteger 1 + (1.0 :: Double) のように書く必要がある。
#fromInteger は暗黙につくようになれば、こちらは明に書く必要がなくなり、
#また、default (Integer, Double) が指定されていれば(いる)、(1.0 :: Double) の方も、単に 1.0 と書けばよい、
#ですかね。
#たびたびすみません、もうちょっと。
#コンパイラが暗黙の fromHogehoge や defaulting をしてくれないとしたら、
#1.0 (Fractional) から Double への暗黙の変換も書かないといけなくなるんですね。
#(書いたことないので、なんて名前の関数かわからなかった…)
#fromRational か。
#9月2日(水)大阪「Haskellによる並列・並行プログラミング読書会 #1」 http://connpass.com/event/19335/