Я пытаюсь понять, почему это не компилируется
yell :: (Floating a) => a -> [Char]
yell x
| x > 10.0 = "Yelling"
| otherwise = "No Yell"
но это
yell :: (Floating a, Ord a) => a -> [Char]
yell x
| x > 10.0 = "Yelling"
| otherwise = "No Yell"
и это
yell :: (RealFloat a) => a -> [Char]
yell x
| x > 10.0 = "Yelling"
| otherwise = "No Yell"
компилировать.
Я знаю, что Floating и Ord являются классами типов, но разве не каждый член Floating также является членом Ord? И в конце концов, является ли RealFloat просто «внутренним соединением» Floating и Ord?