Add instances for 'Tyepable'.
authorAntoine Latter <aslatter@gmail.com>
Mon, 16 Nov 2015 03:14:02 +0000 (21:14 -0600)
committerAntoine Latter <aslatter@gmail.com>
Mon, 16 Nov 2015 03:14:02 +0000 (21:14 -0600)
Text/Parsec/Error.hs
Text/Parsec/Expr.hs
Text/Parsec/Perm.hs
Text/Parsec/Prim.hs
Text/Parsec/Token.hs
Text/ParserCombinators/Parsec/Expr.hs

index 6980690..971cfa4 100644 (file)
@@ -23,6 +23,7 @@ module Text.Parsec.Error
     ) where
 
 import Data.List ( nub, sort )
+import Data.Typeable ( Typeable )
 
 import Text.Parsec.Pos
 
@@ -57,6 +58,7 @@ data Message = SysUnExpect !String -- @ library generated unexpect
              | UnExpect    !String -- @ unexpected something
              | Expect      !String -- @ expecting something
              | Message     !String -- @ raw message
+    deriving ( Typeable )
 
 instance Enum Message where
     fromEnum (SysUnExpect _) = 0
@@ -94,6 +96,7 @@ messageString (Message     s) = s
 -- instance of the 'Show' and 'Eq' classes.
 
 data ParseError = ParseError !SourcePos [Message]
+    deriving ( Typeable )
 
 -- | Extracts the source position from the parse error
 
index 0e73bcf..bb1fb36 100644 (file)
@@ -18,6 +18,8 @@ module Text.Parsec.Expr
     , buildExpressionParser
     ) where
 
+import Data.Typeable ( Typeable )
+
 import Text.Parsec.Prim
 import Text.Parsec.Combinator
 
@@ -31,6 +33,7 @@ import Text.Parsec.Combinator
 data Assoc                = AssocNone
                           | AssocLeft
                           | AssocRight
+   deriving ( Typeable )
 
 -- | This data type specifies operators that work on values of type @a@.
 -- An operator is either binary infix or unary prefix or postfix. A
@@ -39,6 +42,7 @@ data Assoc                = AssocNone
 data Operator s u m a   = Infix (ParsecT s u m (a -> a -> a)) Assoc
                         | Prefix (ParsecT s u m (a -> a))
                         | Postfix (ParsecT s u m (a -> a))
+    deriving ( Typeable )
 
 -- | An @OperatorTable s u m a@ is a list of @Operator s u m a@
 -- lists. The list is ordered in descending
index 0399aa5..4dedaf8 100644 (file)
@@ -32,6 +32,7 @@ module Text.Parsec.Perm
 import Text.Parsec
 
 import Control.Monad.Identity
+import Data.Typeable ( Typeable )
 
 infixl 1 <||>, <|?>
 infixl 2 <$$>, <$?>
@@ -119,10 +120,12 @@ type PermParser tok st a = StreamPermParser String st a
 -- using 'permute'.
 
 data StreamPermParser s st a = Perm (Maybe a) [StreamBranch s st a]
+    deriving ( Typeable )
 
 -- type Branch st a = StreamBranch String st a
 
 data StreamBranch s st a = forall b. Branch (StreamPermParser s st (b -> a)) (Parsec s st b)
+    deriving ( Typeable )
 
 -- | The parser @permute perm@ parses a permutation of parser described
 -- by @perm@. For example, suppose we want to parse a permutation of:
index efc58d5..513d6d4 100644 (file)
@@ -72,6 +72,8 @@ module Text.Parsec.Prim
 import qualified Data.ByteString.Lazy.Char8 as CL
 import qualified Data.ByteString.Char8 as C
 
+import Data.Typeable ( Typeable )
+
 import qualified Data.Text as Text
 import qualified Data.Text.Lazy as TextL
 
@@ -123,6 +125,7 @@ newtype ParsecT s u m a
               -> (ParseError -> m b)                   -- empty err
               -> m b
              }
+     deriving ( Typeable )
 
 -- | Low-level unpacking of the ParsecT type. To run your parser, please look to
 -- runPT, runP, runParserT, runParser and other such functions.
@@ -153,15 +156,18 @@ type Parsec s u = ParsecT s u Identity
 
 data Consumed a  = Consumed a
                  | Empty !a
+    deriving ( Typeable )
 
 data Reply s u a = Ok a !(State s u) ParseError
                  | Error ParseError
+    deriving ( Typeable )
 
 data State s u = State {
       stateInput :: s,
       statePos   :: !SourcePos,
       stateUser  :: !u
     }
+    deriving ( Typeable )
 
 instance Functor Consumed where
     fmap f (Consumed x) = Consumed (f x)
index 27c1303..ab1bd03 100644 (file)
@@ -25,6 +25,7 @@ module Text.Parsec.Token
     ) where
 
 import Data.Char ( isAlpha, toLower, toUpper, isSpace, digitToInt )
+import Data.Typeable ( Typeable )
 import Data.List ( nub, sort )
 import Control.Monad.Identity
 import Text.Parsec.Prim
@@ -98,6 +99,7 @@ data GenLanguageDef s u m
     caseSensitive  :: Bool
 
     }
+    deriving ( Typeable )
 
 -----------------------------------------------------------
 -- A first class module: TokenParser
@@ -305,6 +307,7 @@ data GenTokenParser s u m
 
         commaSep1        :: forall a . ParsecT s u m a -> ParsecT s u m [a]
     }
+    deriving ( Typeable )
 
 -----------------------------------------------------------
 -- Given a LanguageDef, create a token parser.
index a15cc6c..cb4c0f5 100644 (file)
@@ -23,11 +23,13 @@ import Text.Parsec.Expr(Assoc(..))
 import qualified Text.Parsec.Expr as N
 import Text.ParserCombinators.Parsec(GenParser)
 
+import Data.Typeable ( Typeable )
 import Control.Monad.Identity
 
 data Operator tok st a   = Infix  (GenParser tok st (a -> a -> a)) Assoc
                          | Prefix (GenParser tok st (a -> a))
                          | Postfix (GenParser tok st (a -> a))
+    deriving ( Typeable )
 
 type OperatorTable tok st a = [[Operator tok st a]]