diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,9 @@
+0.3.2
+===
+
+- added Data instances
+
+
 0.3.1
 ===
 
diff --git a/formatn.cabal b/formatn.cabal
--- a/formatn.cabal
+++ b/formatn.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.0
 name: formatn
-version: 0.3.1.1
+version: 0.3.2.0
 license: BSD-3-Clause
 license-file: LICENSE
 copyright: Tony Day (c) 2016
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -33,7 +33,7 @@
     ["-1.00","0.00","0.10","1.00","1.01","1.02","1.10","1.20"]
 
 
-# getting 0 right
+# Development
 
 
 ## fixed
diff --git a/src/Data/FormatN.hs b/src/Data/FormatN.hs
--- a/src/Data/FormatN.hs
+++ b/src/Data/FormatN.hs
@@ -81,6 +81,7 @@
 import Data.Bifunctor
 import Data.Bool
 import Data.Containers.ListUtils (nubOrd)
+import Data.Data
 import Data.Foldable
 import Data.List qualified as List
 import Data.Map.Strict qualified as Map
@@ -402,7 +403,7 @@
   | FSPrec
   | FSCommaPrec
   | FSNone
-  deriving (Show, Eq, Ord)
+  deriving (Eq, Show, Generic, Data)
 
 -- | Compute the majority (modal) FormatStyle so a list of numbers can all have the same formatting
 --
@@ -614,7 +615,15 @@
 --
 -- >>> defaultFormatN
 -- FormatN {fstyle = FSCommaPrec, sigFigs = Just 2, maxDistinguishIterations = 4, addLPad = True, cutRightZeros = True}
-data FormatN = FormatN {fstyle :: FStyle, sigFigs :: Maybe Int, maxDistinguishIterations :: Int, addLPad :: Bool, cutRightZeros :: Bool} deriving (Eq, Show, Generic)
+data FormatN
+  = FormatN
+  { fstyle :: FStyle,
+    sigFigs :: Maybe Int,
+    maxDistinguishIterations :: Int,
+    addLPad :: Bool,
+    cutRightZeros :: Bool
+  }
+  deriving (Eq, Show, Generic, Data)
 
 -- | The official FormatN
 defaultFormatN :: FormatN
