Извините, это написано плохо, но это трудно описать.
Думаю, я просто перейду к примеру:
add :: Integer -> Integer -> Integer
add x y = x + y
почему:
:: Integer -> Integer -> Integer
вместо:
:: Integer, Integer -> Integer
стрелка - это оператор отображения типа функции", а не какой-то разделитель, no?