{-# LANGUAGE DerivingStrategies #-} module Data.Medea.Parser.Types (MedeaParser, ParseError (..)) where import Data.Text (Text) import Text.Megaparsec (Parsec, ShowErrorComponent, showErrorComponent) data ParseError = IdentifierTooLong {-# UNPACK #-} !Text | ExpectedReservedIdentifier {-# UNPACK #-} !Text | LeadingZero {-# UNPACK #-} !Text | ConflictingSpecRequirements | EmptyLengthArraySpec | EmptyArrayElements | EmptyStringValuesSpec deriving stock (Eq, Ord, Show) instance ShowErrorComponent ParseError where showErrorComponent = show type MedeaParser = Parsec ParseError Text