そこでHaskellでは
そのfやgが属するべきtype classをあらかじめ指定しておいて、
そのtype classに属する型であることを推論できるようにしてある。

例えば
class FG a where
    f :: a -> Double
    g :: a -> Int
とあると、
hoge x = floor (f x) + g x 
の型は、hoge :: FG a => a -> Int と推論される。