@@ -16,6 +16,7 @@ import Data.Monoid
1616import Data.Proxy
1717import Data.String
1818import Data.Text
19+import Data.Typeable (Typeable)
1920import Data.Text.Encoding (decodeUtf8)
2021import GHC.TypeLits
2122import qualified Network.HTTP.Types as HTTP
@@ -25,19 +26,19 @@ import Servant.API.TypeLevel
2526
2627
2728newtype FunctionName = FunctionName { unFunctionName :: [Text] }
28− deriving (Data, Show, Eq, Monoid)
29+ deriving (Data, Show, Eq, Monoid, Typeable)
2930
3031makePrisms ''FunctionName
3132
3233newtype PathSegment = PathSegment { unPathSegment :: Text }
33− deriving (Data, Show, Eq, IsString, Monoid)
34+ deriving (Data, Show, Eq, IsString, Monoid, Typeable)
3435
3536makePrisms ''PathSegment
3637
3738data Arg f = Arg
3839 { _argName :: PathSegment
3940 , _argType :: f }
40− deriving (Data, Eq, Show)
41+ deriving (Data, Eq, Show, Typeable)
4142
4243makeLenses ''Arg
4344
@@ -49,12 +50,12 @@ data SegmentType f
4950 -- ^ a static path segment. like "/foo"
5051 | Cap (Arg f)
5152 -- ^ a capture. like "/:userid"
52− deriving (Data, Eq, Show)
53+ deriving (Data, Eq, Show, Typeable)
5354
5455makePrisms ''SegmentType
5556
5657newtype Segment f = Segment { unSegment :: SegmentType f }
57− deriving (Data, Eq, Show)
58+ deriving (Data, Eq, Show, Typeable)
5859
5960makePrisms ''Segment
6061
@@ -72,7 +73,7 @@ data ArgType
7273 = Normal
7374 | Flag
7475 | List
75− deriving (Data, Eq, Show)
76+ deriving (Data, Eq, Show, Typeable)
7677
7778makePrisms ''ArgType
7879
@@ -80,7 +81,7 @@ data QueryArg f = QueryArg
8081 { _queryArgName :: Arg f
8182 , _queryArgType :: ArgType
8283 }
83− deriving (Data, Eq, Show)
84+ deriving (Data, Eq, Show, Typeable)
8485
8586makeLenses ''QueryArg
8687
@@ -90,7 +91,7 @@ data HeaderArg f = HeaderArg
9091 { _headerArg :: Arg f
9192 , _headerPattern :: Text
9293 }
93− deriving (Data, Eq, Show)
94+ deriving (Data, Eq, Show, Typeable)
9495
9596makeLenses ''HeaderArg
9697
@@ -100,7 +101,7 @@ data Url f = Url
100101 { _path :: Path f
101102 , _queryStr :: [QueryArg f]
102103 }
103− deriving (Data, Eq, Show)
104+ deriving (Data, Eq, Show, Typeable)
104105
105106defUrl :: Url f
106107defUrl = Url [] []
@@ -115,7 +116,7 @@ data Req f = Req
115116 , _reqReturnType :: Maybe f
116117 , _reqFuncName :: FunctionName
117118 }
118− deriving (Data, Eq, Show)
119+ deriving (Data, Eq, Show, Typeable)
119120
120121makeLenses ''Req
121122