@@ -182,7 +182,9 @@ sepBy1' p s = scan
182182-- > simpleComment = string "<!--" *> manyTill anyChar (try (string "-->"))
183183--
184184-- Note the overlapping parsers @anyChar@ and @string \"<!--\"@, and
185−-- therefore the use of the 'try' combinator.
185+-- therefore the use of the 'try' combinator. (This is not strictly required
186+-- because Attoparsec backtracks automatically, but recommended anyway for
187+-- compatibility with Parsec.)
186188manyTill :: Alternative f => f a -> f b -> f [a]
187189manyTill p end = scan
188190 where scan = (end *> pure []) <|> liftA2 (:) p scan
@@ -198,8 +200,11 @@ manyTill p end = scan
198200-- > simpleComment = string "<!--" *> manyTill' anyChar (try (string "-->"))
199201--
200202-- Note the overlapping parsers @anyChar@ and @string \"<!--\"@, and
201−-- therefore the use of the 'try' combinator. The value returned by @p@
202−-- is forced to WHNF.
203+-- therefore the use of the 'try' combinator. (This is not strictly required
204+-- because Attoparsec backtracks automatically, but recommended anyway for
205+-- compatibility with Parsec.)
206+--
207+-- The value returned by @p@ is forced to WHNF.
203208manyTill' :: (MonadPlus m) => m a -> m b -> m [a]
204209manyTill' p end = scan
205210 where scan = (end >> return []) `mplus` liftM2' (:) p scan