Именование функции `pure` в Control.Applicative

Почему функция для перевода значения в функтор с именем pure в Control.Applicative?

Ответ 1

Вспомните pure как прилагательное.

foo <*> pure 4= foo применяется к чистому значению 4.

(Что касается точной причины, по которой она называлась pure, вероятно, будут знать только McBride и Paterson.)

Ответ 2

Это немного похоже на fromInteger. Его аргумент всегда является чистым значением или функцией, которая будет поднята в функтор. Возможно, это должно было быть fromPure, но вы знаете, как люди Haskell любят сокращать имена (например, fst и snd вместо first и second...).