Haskell: some and many
alternative-functor, applicative, combinators, haskell, some-and-many
Solution
They make sense when used as parser combinators.
`some` means that the parser is applied as many times as possible, but at least once.
`many` is similar, but allows for no parse as well, `return`ing `[]` in such case instead of failing.
In case of `Maybe`, `Just ...` never "fails", thus your parser `some $ Just 42` loops.
Problem
What are `some` and `many` in `Control.Applicative.Alternative` good for? If I write something like `some $ Just 42`, it seems to cause infinite recursion, which seems not very useful...