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