{-# LANGUAGE GADTs, DataKinds, OverloadedStrings #-} module Events.Spec.Parse ( parse , Position(..), ParseError(..) ) where import Data.Conduit.Attoparsec import Data.Conduit import Data.Attoparsec.Text hiding (parse) import Data.Text (Text) import qualified Data.Text as T import Events.Spec.Types import Control.Monad.Catch (MonadThrow) parse :: MonadThrow m => Consumer Text m (Spec m) parse = sinkParser $ pSpec <* endOfInput pSpec :: Monad m => Parser (Spec m) pSpec = mzero