{-# LANGUAGE ScopedTypeVariables #-} module Language.Fiddle.Parser where import Language.Fiddle.Types import Data.Functor.Identity import Data.Text import Text.Parsec newtype FiddleUnit a = FiddleUnit a parseUnit :: ParsecT s u m (FiddleUnit Metadata) parseUnit = undefined parseText :: String -> Text -> Either String (FiddleUnit Metadata) parseText sourceName txt = runIdentity $ do res <- Text.Parsec.runParserT parseUnit () sourceName [] return $ case res of Left pe -> Left (show pe) Right a -> Right a