diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
diff --git a/hoppy-std.cabal b/hoppy-std.cabal
--- a/hoppy-std.cabal
+++ b/hoppy-std.cabal
@@ -1,12 +1,12 @@
 name: hoppy-std
-version: 0.7.0
+version: 0.7.1
 synopsis: C++ FFI generator - Standard library bindings
 homepage: http://khumba.net/projects/hoppy
 license: Apache-2.0
 license-file: LICENSE
 author: Bryan Gardiner <bog@khumba.net>
 maintainer: Bryan Gardiner <bog@khumba.net>
-copyright: Copyright 2015-2019 Bryan Gardiner
+copyright: Copyright 2015-2020 Bryan Gardiner
 category: Foreign
 build-type: Simple
 cabal-version: >=1.10
diff --git a/include/hoppy/std/iterator.hpp b/include/hoppy/std/iterator.hpp
--- a/include/hoppy/std/iterator.hpp
+++ b/include/hoppy/std/iterator.hpp
@@ -3,7 +3,7 @@
 
 // This file is part of Hoppy.
 //
-// Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+// Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/include/hoppy/std/map.hpp b/include/hoppy/std/map.hpp
--- a/include/hoppy/std/map.hpp
+++ b/include/hoppy/std/map.hpp
@@ -3,7 +3,7 @@
 
 // This file is part of Hoppy.
 //
-// Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+// Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/include/hoppy/std/set.hpp b/include/hoppy/std/set.hpp
--- a/include/hoppy/std/set.hpp
+++ b/include/hoppy/std/set.hpp
@@ -3,7 +3,7 @@
 
 // This file is part of Hoppy.
 //
-// Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+// Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/include/hoppy/std/unordered_map.hpp b/include/hoppy/std/unordered_map.hpp
--- a/include/hoppy/std/unordered_map.hpp
+++ b/include/hoppy/std/unordered_map.hpp
@@ -3,7 +3,7 @@
 
 // This file is part of Hoppy.
 //
-// Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+// Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/include/hoppy/std/unordered_set.hpp b/include/hoppy/std/unordered_set.hpp
--- a/include/hoppy/std/unordered_set.hpp
+++ b/include/hoppy/std/unordered_set.hpp
@@ -3,7 +3,7 @@
 
 // This file is part of Hoppy.
 //
-// Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+// Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/include/hoppy/std/utility.hpp b/include/hoppy/std/utility.hpp
--- a/include/hoppy/std/utility.hpp
+++ b/include/hoppy/std/utility.hpp
@@ -3,7 +3,7 @@
 
 // This file is part of Hoppy.
 //
-// Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+// Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/src/Foreign/Hoppy/Generator/Std.hs b/src/Foreign/Hoppy/Generator/Std.hs
--- a/src/Foreign/Hoppy/Generator/Std.hs
+++ b/src/Foreign/Hoppy/Generator/Std.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
diff --git a/src/Foreign/Hoppy/Generator/Std/Internal.hs b/src/Foreign/Hoppy/Generator/Std/Internal.hs
--- a/src/Foreign/Hoppy/Generator/Std/Internal.hs
+++ b/src/Foreign/Hoppy/Generator/Std/Internal.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
diff --git a/src/Foreign/Hoppy/Generator/Std/Iterator.hs b/src/Foreign/Hoppy/Generator/Std/Iterator.hs
--- a/src/Foreign/Hoppy/Generator/Std/Iterator.hs
+++ b/src/Foreign/Hoppy/Generator/Std/Iterator.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
diff --git a/src/Foreign/Hoppy/Generator/Std/List.hs b/src/Foreign/Hoppy/Generator/Std/List.hs
--- a/src/Foreign/Hoppy/Generator/Std/List.hs
+++ b/src/Foreign/Hoppy/Generator/Std/List.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
@@ -40,7 +40,26 @@
   sayLn,
   saysLn,
   )
-import Foreign.Hoppy.Generator.Spec
+import Foreign.Hoppy.Generator.Spec (
+  Constness (Const, Nonconst),
+  Export (Export),
+  Operator (OpEq),
+  Purity (Nonpure),
+  Reqs,
+  Type,
+  addAddendumHaskell,
+  addReqs,
+  hsImport1,
+  hsImportForPrelude,
+  hsImportForRuntime,
+  ident1T,
+  ident2,
+  identT',
+  includeStd,
+  np,
+  reqInclude,
+  toExtName,
+  )
 import Foreign.Hoppy.Generator.Spec.Class (
   Class,
   MethodApplicability (MConst),
@@ -53,6 +72,10 @@
   mkMethod',
   toHsDataTypeName,
   toHsClassEntityName,
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Comparable, Copyable, Equatable),
+  classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Std (ValueConversion (ConvertPtr, ConvertValue))
 import Foreign.Hoppy.Generator.Std.Iterator
diff --git a/src/Foreign/Hoppy/Generator/Std/Map.hs b/src/Foreign/Hoppy/Generator/Std/Map.hs
--- a/src/Foreign/Hoppy/Generator/Std/Map.hs
+++ b/src/Foreign/Hoppy/Generator/Std/Map.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
@@ -40,7 +40,27 @@
   sayLn,
   saysLn,
   )
-import Foreign.Hoppy.Generator.Spec
+import Foreign.Hoppy.Generator.Spec (
+  Constness (Const, Nonconst),
+  Export (Export),
+  Operator (OpArray, OpEq),
+  Purity (Nonpure),
+  Reqs,
+  Type,
+  addAddendumHaskell,
+  addReqs,
+  hsImports,
+  hsImportForPrelude,
+  hsImportForRuntime,
+  ident1T,
+  ident2,
+  ident2T,
+  identT',
+  includeStd,
+  np,
+  reqInclude,
+  toExtName,
+  )
 import Foreign.Hoppy.Generator.Spec.Class (
   Class,
   MethodApplicability (MConst, MNormal),
@@ -53,6 +73,10 @@
   mkMethod',
   toHsDataTypeName,
   toHsClassEntityName,
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Copyable),
+  classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Std (ValueConversion (ConvertPtr, ConvertValue))
 import Foreign.Hoppy.Generator.Std.Internal (includeHelper)
diff --git a/src/Foreign/Hoppy/Generator/Std/Pair.hs b/src/Foreign/Hoppy/Generator/Std/Pair.hs
--- a/src/Foreign/Hoppy/Generator/Std/Pair.hs
+++ b/src/Foreign/Hoppy/Generator/Std/Pair.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
@@ -29,7 +29,19 @@
 #if !MIN_VERSION_base(4,8,0)
 import Data.Monoid (mconcat)
 #endif
-import Foreign.Hoppy.Generator.Spec
+import Foreign.Hoppy.Generator.Spec (
+  Export (Export),
+  Purity (Nonpure),
+  Reqs,
+  Type,
+  addReqs,
+  ident1T,
+  ident2,
+  includeStd,
+  np,
+  reqInclude,
+  toExtName,
+  )
 import Foreign.Hoppy.Generator.Spec.Class (
   Class,
   MethodApplicability (MConst, MNormal),
@@ -37,6 +49,10 @@
   makeFnMethod,
   mkCtor,
   mkMethod,
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Copyable),
+  classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Std.Internal (includeHelper)
 import Foreign.Hoppy.Generator.Types
diff --git a/src/Foreign/Hoppy/Generator/Std/Set.hs b/src/Foreign/Hoppy/Generator/Std/Set.hs
--- a/src/Foreign/Hoppy/Generator/Std/Set.hs
+++ b/src/Foreign/Hoppy/Generator/Std/Set.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
@@ -40,7 +40,26 @@
   sayLn,
   saysLn,
   )
-import Foreign.Hoppy.Generator.Spec
+import Foreign.Hoppy.Generator.Spec (
+  Constness (Const, Nonconst),
+  Export (Export),
+  Operator (OpEq),
+  Purity (Nonpure),
+  Reqs,
+  Type,
+  addAddendumHaskell,
+  addReqs,
+  hsImport1,
+  hsImportForPrelude,
+  hsImportForRuntime,
+  ident1T,
+  ident2,
+  identT',
+  includeStd,
+  np,
+  reqInclude,
+  toExtName,
+  )
 import Foreign.Hoppy.Generator.Spec.Class (
   Class,
   MethodApplicability (MNormal),
@@ -54,6 +73,10 @@
   toHsCastMethodName,
   toHsDataTypeName,
   toHsClassEntityName,
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Comparable, Copyable),
+  classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Std (ValueConversion (ConvertPtr, ConvertValue))
 import Foreign.Hoppy.Generator.Std.Internal (includeHelper)
diff --git a/src/Foreign/Hoppy/Generator/Std/String.hs b/src/Foreign/Hoppy/Generator/Std/String.hs
--- a/src/Foreign/Hoppy/Generator/Std/String.hs
+++ b/src/Foreign/Hoppy/Generator/Std/String.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
@@ -23,7 +23,18 @@
 import Data.Monoid (mconcat)
 #endif
 import Foreign.Hoppy.Generator.Language.Haskell (addExport, addImports, indent, sayLn)
-import Foreign.Hoppy.Generator.Spec
+import Foreign.Hoppy.Generator.Spec (
+  addAddendumHaskell,
+  addReqIncludes,
+  hsImport1,
+  hsImportForForeignC,
+  hsImportForPrelude,
+  hsImportForRuntime,
+  ident1,
+  includeStd,
+  np,
+  toExtName,
+  )
 import Foreign.Hoppy.Generator.Spec.Class (
   Class,
   ClassHaskellConversion (..),
@@ -33,6 +44,10 @@
   mkConstMethod,
   mkConstMethod',
   mkMethod',
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Comparable, Copyable, Equatable),
+  classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Types
 import Language.Haskell.Syntax (
diff --git a/src/Foreign/Hoppy/Generator/Std/UnorderedMap.hs b/src/Foreign/Hoppy/Generator/Std/UnorderedMap.hs
--- a/src/Foreign/Hoppy/Generator/Std/UnorderedMap.hs
+++ b/src/Foreign/Hoppy/Generator/Std/UnorderedMap.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
@@ -40,7 +40,27 @@
   sayLn,
   saysLn,
   )
-import Foreign.Hoppy.Generator.Spec
+import Foreign.Hoppy.Generator.Spec (
+  Constness (Const, Nonconst),
+  Export (Export),
+  Operator (OpArray, OpEq),
+  Purity (Nonpure),
+  Reqs,
+  Type,
+  addAddendumHaskell,
+  addReqs,
+  hsImports,
+  hsImportForPrelude,
+  hsImportForRuntime,
+  ident1T,
+  ident2T,
+  ident2,
+  identT',
+  includeStd,
+  np,
+  reqInclude,
+  toExtName,
+  )
 import Foreign.Hoppy.Generator.Spec.Class (
   Class,
   MethodApplicability (MConst, MNormal),
@@ -53,6 +73,10 @@
   mkMethod',
   toHsDataTypeName,
   toHsClassEntityName,
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Copyable),
+  classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Std (ValueConversion (ConvertPtr, ConvertValue))
 import Foreign.Hoppy.Generator.Std.Internal (includeHelper)
diff --git a/src/Foreign/Hoppy/Generator/Std/UnorderedSet.hs b/src/Foreign/Hoppy/Generator/Std/UnorderedSet.hs
--- a/src/Foreign/Hoppy/Generator/Std/UnorderedSet.hs
+++ b/src/Foreign/Hoppy/Generator/Std/UnorderedSet.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
@@ -40,7 +40,26 @@
   sayLn,
   saysLn,
   )
-import Foreign.Hoppy.Generator.Spec
+import Foreign.Hoppy.Generator.Spec (
+  Constness (Const, Nonconst),
+  Export (Export),
+  Operator (OpEq),
+  Purity (Nonpure),
+  Reqs,
+  Type,
+  addAddendumHaskell,
+  addReqs,
+  hsImport1,
+  hsImportForPrelude,
+  hsImportForRuntime,
+  ident1T,
+  ident2,
+  identT',
+  includeStd,
+  np,
+  reqInclude,
+  toExtName,
+  )
 import Foreign.Hoppy.Generator.Spec.Class (
   Class,
   MethodApplicability (MNormal),
@@ -54,6 +73,10 @@
   toHsCastMethodName,
   toHsDataTypeName,
   toHsClassEntityName,
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Copyable),
+  classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Std (ValueConversion (ConvertPtr, ConvertValue))
 import Foreign.Hoppy.Generator.Std.Internal (includeHelper)
diff --git a/src/Foreign/Hoppy/Generator/Std/Vector.hs b/src/Foreign/Hoppy/Generator/Std/Vector.hs
--- a/src/Foreign/Hoppy/Generator/Std/Vector.hs
+++ b/src/Foreign/Hoppy/Generator/Std/Vector.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
@@ -40,7 +40,26 @@
   sayLn,
   saysLn,
   )
-import Foreign.Hoppy.Generator.Spec
+import Foreign.Hoppy.Generator.Spec (
+  Constness (Const, Nonconst),
+  Export (Export),
+  Purity (Nonpure),
+  Reqs,
+  Type,
+  addAddendumHaskell,
+  addReqs,
+  hsImport1,
+  hsImports,
+  hsImportForPrelude,
+  hsImportForRuntime,
+  ident1T,
+  ident2,
+  identT',
+  includeStd,
+  np,
+  reqInclude,
+  toExtName,
+  )
 import Foreign.Hoppy.Generator.Spec.Class (
   Class,
   MethodApplicability (MConst),
@@ -53,6 +72,10 @@
   mkMethod',
   toHsDataTypeName,
   toHsClassEntityName,
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Copyable),
+  classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Std (ValueConversion (ConvertPtr, ConvertValue))
 import Foreign.Hoppy.Generator.Std.Iterator
diff --git a/src/Foreign/Hoppy/Generator/Std/Wstring.hs b/src/Foreign/Hoppy/Generator/Std/Wstring.hs
--- a/src/Foreign/Hoppy/Generator/Std/Wstring.hs
+++ b/src/Foreign/Hoppy/Generator/Std/Wstring.hs
@@ -1,6 +1,6 @@
 -- This file is part of Hoppy.
 --
--- Copyright 2015-2019 Bryan Gardiner <bog@khumba.net>
+-- Copyright 2015-2020 Bryan Gardiner <bog@khumba.net>
 --
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
@@ -23,7 +23,18 @@
 import Data.Monoid (mconcat)
 #endif
 import Foreign.Hoppy.Generator.Language.Haskell (addExport, addImports, indent, sayLn)
-import Foreign.Hoppy.Generator.Spec
+import Foreign.Hoppy.Generator.Spec (
+  addAddendumHaskell,
+  addReqIncludes,
+  hsImport1,
+  hsImportForForeignC,
+  hsImportForPrelude,
+  hsImportForRuntime,
+  ident1,
+  includeStd,
+  np,
+  toExtName,
+  )
 import Foreign.Hoppy.Generator.Spec.Class (
   Class,
   ClassHaskellConversion (..),
@@ -33,6 +44,10 @@
   mkConstMethod,
   mkConstMethod',
   mkMethod',
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Comparable, Copyable, Equatable),
+  classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Types
 import Language.Haskell.Syntax (
