Alternative
, расширение Applicative
, объявляет empty
, <|>
и эти две функции:
Один или несколько:
some :: f a -> f [a]
Ноль или больше:
many :: f a -> f [a]
Если определено,
some
иmany
должны быть наименьшими решениями уравнений:some v = (:) <$> v <*> many v many v = some v <|> pure []
Я не смог найти экземпляр, для которого определены some
и many
. В чем их смысл и практическое применение? Используются ли они вообще? Я не мог понять их цель только из этого определения.
Обновление: Я не спрашиваю, что такое Alternative
, только что some
и many