{-# LANGUAGE GeneralizedNewtypeDeriving #-} -- | Newtype wrappers for parsers module Text.Parser.Wrapper where import Control.Applicative (Applicative, Alternative) import Control.Monad (MonadPlus) import Text.Parser.Combinators (Parsing) import Text.Parser.LookAhead (LookAheadParsing) import Text.Parser.Char (CharParsing) import Text.Parser.Token (TokenParsing) -- | Wrapper that signifies lazy 'Data.ByteString.Lazy.ByteString' inputs newtype Lazy f a = Lazy{getLazy :: f a} deriving (Eq, Ord, Read, Show, Functor, Applicative, Alternative, Monad, MonadPlus, Parsing, LookAheadParsing, CharParsing, TokenParsing) -- | Wrapper that signifies strict 'Data.ByteString.ByteString' inputs newtype Strict f a = Strict{getStrict :: f a} deriving (Eq, Ord, Read, Show, Functor, Applicative, Alternative, Monad, MonadPlus, Parsing, LookAheadParsing, CharParsing, TokenParsing)