Skip to content

Instantly share code, notes, and snippets.

@duairc
Created January 16, 2014 04:14
Show Gist options
  • Save duairc/8449689 to your computer and use it in GitHub Desktop.
Save duairc/8449689 to your computer and use it in GitHub Desktop.
import Control.Applicative
import Data.Attoparsec
import Data.IORef
import System.IO.Unsafe
------------------------------------------------------------------------------
wouldSucceed :: Parser a -> Parser Bool
wouldSucceed p = do
result <- return $! unsafePerformIO (newIORef False)
(do
p
return $! unsafePerformIO (writeIORef result True)
empty) <|> (return $! unsafePerformIO (readIORef result))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment