Мне интересно выражение flip id (Это не домашнее задание: я нашел его в документации getOpt).
Интересно, почему он имеет этот тип:
Prelude> :t (flip id)
(flip id) :: b -> (b -> c) -> c
Например, (flip id) 5 (+6) дает 11.
Я знаю, почему id (+6) 5 дает 11, но я не "получаю" flip id вещь.
Я попытался понять это сам, используя ручку и бумагу, но не мог. Может ли кто-нибудь объяснить это мне? Я имею в виду, как flip id появился тип b -> (b -> c) -> c?