@ Hammar: Спасибо, хороший улов! По какой-то причине мне не пришло в голову попробовать это, и я не был уверен, может ли GHCi иметь другое специальное поведение для привязок в REPL.
ая на вопрос о stackoverflow, я заметил, что GHCi (интерактивный) назначает слишком ограничительный тип впозволять заявление. А именно, учитывая код,
import Control.Arrow
f = maximum &&& id >>> fst &&& (\(m,l) -> length $ filter (==m) l)
(как в моем ответеhttps://stackoverflow.com/questions/6281813/maximum-of-list-and-count-of-repeat-maximum-number/6283594#6283594), если один вставляет «пусть» передf
и вводит это в ghci, он дает следующую информацию о типе
Prelude Control.Arrow> :t f
f :: [()] -> ((), Int)
в то время как простой запрос типа выражения дает правильный результат, а именноOrd a => [a] -> (a, Int)
, Я использую GHC 7.0.3.