たとえばこんな式を書いたら
sqrt $ fromInteger 15
この型は
Floating a => a
じゃないですか。

で、もうひとつ関数を追加して
floor $ sqrt $ fromInteger 15
としたらこの型は
Integer
になるじゃないですか。

このとき sqrt が返す値の型は Floating クラスに属するわけで、
floor が受け取れるんだから RealFrac クラスでもあるような型ってことになるわけです。
でも、そうなると候補は Float と Double のふたつがあることになると思うんですけど、
実際にはどちらで処理されるんですか?