diff --git a/changelog.txt b/changelog.txt
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,6 @@
 v0.1.0.0 - Initial
 
 v0.1.1.0 - Added the BlockTagContent type
+
+v0.1.2.0 - Add instances (Eq, Show, Generic, Hashable, NFData)
+           to classes (BlockTag, BlockTagContent)
diff --git a/library/pro-abstract/ProAbstract/Structure/BlockTag.hs b/library/pro-abstract/ProAbstract/Structure/BlockTag.hs
--- a/library/pro-abstract/ProAbstract/Structure/BlockTag.hs
+++ b/library/pro-abstract/ProAbstract/Structure/BlockTag.hs
@@ -20,6 +20,8 @@
 data BlockTag ann =
     BlockTagFork  (Tagged (Blocks ann))     -- ^ 'ProAbstract.fork'
   | BlockTagPlain (Tagged (PlainBlock ann)) -- ^ 'ProAbstract.plain'
+  deriving stock (Eq, Show, Generic)
+  deriving anyclass (Hashable, NFData)
 
 type instance Content (BlockTag ann) = BlockTagContent ann
 
diff --git a/library/pro-abstract/ProAbstract/Structure/BlockTagContent.hs b/library/pro-abstract/ProAbstract/Structure/BlockTagContent.hs
--- a/library/pro-abstract/ProAbstract/Structure/BlockTagContent.hs
+++ b/library/pro-abstract/ProAbstract/Structure/BlockTagContent.hs
@@ -18,6 +18,8 @@
 data BlockTagContent ann =
     BlockTagContent_Fork  (Blocks ann)     -- ^ 'ProAbstract.fork'
   | BlockTagContent_Plain (PlainBlock ann) -- ^ 'ProAbstract.plain'
+  deriving stock (Eq, Show, Generic)
+  deriving anyclass (Hashable, NFData)
 
 type instance Annotation (BlockTagContent ann) = ann
 
diff --git a/pro-abstract.cabal b/pro-abstract.cabal
--- a/pro-abstract.cabal
+++ b/pro-abstract.cabal
@@ -1,7 +1,7 @@
 cabal-version: 3.0
 
 name: pro-abstract
-version: 0.1.1.0
+version: 0.1.2.0
 
 category: Language
 synopsis: Abstract syntax for writing documents
