diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Changelog
 
+### 0.13.1
+
+* Derive `Eq, Show` for all types in `Rest.Gen.Types`
+* Haskell: Nub generated imports
+
 ## 0.13
 
 Breaking changes:
diff --git a/rest-gen.cabal b/rest-gen.cabal
--- a/rest-gen.cabal
+++ b/rest-gen.cabal
@@ -1,5 +1,5 @@
 name:                rest-gen
-version:             0.13
+version:             0.13.1
 description:         Documentation and client generation from rest definition.
 synopsis:            Documentation and client generation from rest definition.
 maintainer:          code@silk.co
diff --git a/src/Rest/Gen/Haskell/Generate.hs b/src/Rest/Gen/Haskell/Generate.hs
--- a/src/Rest/Gen/Haskell/Generate.hs
+++ b/src/Rest/Gen/Haskell/Generate.hs
@@ -112,8 +112,7 @@
 
 mkImports :: HaskellContext -> ApiResource -> [ModuleName] -> Code
 mkImports ctx node datImp
-  = mkStack
-  . map (rewriteImport $ rewrites ctx)
+  = mkStack . nub . map (rewriteImport $ rewrites ctx)
   $    [Import UnQualified (ModuleName "Rest.Client.Internal") Nothing Nothing]
     ++ extraImports
     ++ parentImports
diff --git a/src/Rest/Gen/Types.hs b/src/Rest/Gen/Types.hs
--- a/src/Rest/Gen/Types.hs
+++ b/src/Rest/Gen/Types.hs
@@ -21,6 +21,7 @@
 overModuleName f = ModuleName . f . unModuleName
 
 newtype Name = Name { unName :: String }
+  deriving (Eq, Show)
 
 instance Codeable Name where
   code = code . unName
@@ -28,12 +29,14 @@
 data QName
   = Qual ModuleName Name
   | UnQual Name
+  deriving (Eq, Show)
 
 instance Codeable QName where
   code (UnQual n) = code n
   code (Qual m n) = code m <+> "." <+> code n
 
 data Qualification = Qualified | UnQualified
+  deriving (Eq, Show)
 
 instance Codeable Qualification where
   code Qualified   = code "qualified"
@@ -41,6 +44,7 @@
 
 data Import
   = Import Qualification ModuleName (Maybe ModuleName) (Maybe [QName])
+  deriving (Eq, Show)
 
 instance Codeable Import where
   code i = case i of
