>>651
べつに必須というわけじゃない
必須なんてライブラリ ドキュメントのどこにも書いてないだろ?

次の2つのパーサーのパース結果を色んな文字列で比べてみればいい

manyTill (string "abc") (string "abd")
manyTill (string "abc") (try $ string "abd")

ちなみに、Parsec のソースの Combinator.hs を見てみれば、
この場合になんで try がいるのかすぐに分る

意外にシンプルに書かれたソースなんで、
ついでに他の関数の中身も見てみるといいよ