>>601

きちんと動かしてないけど、こんな感じにパラフレーズできるんじゃね?

parseWhile p = do
 mx <- peekByte
 mp <- return $ fmap p $ mx
 if mp == Just True
  then (do
      h <- parseByte
      t <- parseWhile p
      return (h:t))
  else (return [])