Рассмотрим эти (более или менее) сигнатуры эквивалентных типов:
f1 :: [a] -> Int -> a
f2 :: Integral b => [a] -> b -> a
f2 является более общим, чем f1 , и это большое преимущество, но есть ли преимущество f1 перед f2
Похоже, что в решениях проблем H-99 и во многих опубликованных решениях различных задач Project Euler форма f1 появляется гораздо чаще, чем f2 .
Я не уверен почему. Это просто программистская лень или затраты на работу с более общей версией ( f2 ), или есть другая причина?