{-# LANGUAGE GeneralizedNewtypeDeriving #-}
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)
newtype Lazy f a = Lazy{getLazy :: f a} deriving (Eq, Ord, Read, Show,
Functor, Applicative, Alternative,
Monad, MonadPlus,
Parsing, LookAheadParsing, CharParsing, TokenParsing)
newtype Strict f a = Strict{getStrict :: f a} deriving (Eq, Ord, Read, Show,
Functor, Applicative, Alternative,
Monad, MonadPlus,
Parsing, LookAheadParsing, CharParsing, TokenParsing)