diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,11 @@
 
 `bitfield` uses [PVP Versioning][1].
 
-## 0.1.0.0
+## 0.0.0.1
+
+* Added Ord instance to Bitfield
+
+## 0.0.0.0
 
 * Initially created.
 
diff --git a/bitfield.cabal b/bitfield.cabal
--- a/bitfield.cabal
+++ b/bitfield.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                bitfield
-version:             0.0.0.0
+version:             0.0.0.1
 synopsis:            Generic and easy to use haskell bitfields
 description:         Generic and easy to use haskell bitfields. Allows packing and modifying datatypes in a compact representation. See `README.md` or 'Data.Bitfield' for documentation.
 license:             MIT
@@ -46,7 +46,7 @@
   main-is:             Spec.hs
   build-tool-depends:  sydtest-discover:sydtest-discover
   build-depends:       bitfield
-                     , sydtest >= 0.12 && < 0.14
+                     , sydtest >= 0.12 && < 0.16
                      , validity >= 0.12 && < 0.13
                      , genvalidity >= 1.0 && < 1.2
                      , genvalidity-sydtest >= 1.0 && < 1.1
diff --git a/src/Data/Bitfield/Internal.hs b/src/Data/Bitfield/Internal.hs
--- a/src/Data/Bitfield/Internal.hs
+++ b/src/Data/Bitfield/Internal.hs
@@ -66,7 +66,7 @@
 -- @a@'s fields are also required to have an instance of 'AsRep' and 'FiniteBits'. This is provided for the most common
 -- types ('Int'/'Word' (and variants) and 'Bool'). 
 newtype Bitfield (rep :: Type) (a :: Type) = Bitfield rep
-  deriving newtype (Eq, Storable)
+  deriving newtype (Eq, Ord, Storable)
 
 -- | Access the underlying representation of the 'Bitfield'
 unwrap :: Bitfield rep a -> rep
@@ -97,7 +97,7 @@
 -- Beware that updates should be done with 'set', as 'pack' will recreate the entire 'Bitfield'
 -- from scratch. The following will most likely *not* be optimised: @pack $ (unpack bitfield) { example = True }@
 pack :: forall rep a . (Fits rep a, Generic a, Bits rep, GPackBitfield rep (Rep a)) => a -> Bitfield rep a
-pack a = case packI (Proxy @(Rep a)) 0 zeroBits (from a) of (_, b) -> Bitfield b
+pack a = case packI (Proxy @(Rep a)) 0 (zeroBits :: rep) (from a) of (_, b) -> Bitfield b
 {-# INLINE pack #-}
 
 instance (Fits rep a, Generic a, GPackBitfield rep (Rep a), Show a) => Show (Bitfield rep a) where
