diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,7 @@
+## Changes in 0.8.4 [2020.12.09]
+ - Backport the `Ord` instances for `TyCon` and `TypeRep` to be available on
+   GHC 7.0.
+
 ## Changes in 0.8.3 [2020.09.30]
  - Backport new instances from GHC 9.0/`base-4.15`
    * `MonadFix` and `MonadZip` instances for `Complex`
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -80,6 +80,7 @@
  * `Storable` instance for `()`, `Complex`, and `Ratio`
  * `TestEquality` instance for `Compose`
  * `Traversable` instance for `Either`, `(,)` and `Const`
+ * `Ord` instance for `TyCon` and `TypeRep`.
  * `Typeable` instance for most data types, typeclasses, and promoted data constructors (when possible)
 
 ## What is not covered
diff --git a/base-orphans.cabal b/base-orphans.cabal
--- a/base-orphans.cabal
+++ b/base-orphans.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 55f37cf3d5ba9e06b928b53e1025ae733e222f62c44e67304b8819d4fe74f383
+-- hash: 3f7729521eafb32086f9ec5393064162845096085d8c2302ff44044aecc88db3
 
 name:                base-orphans
-version:             0.8.3
+version:             0.8.4
 synopsis:            Backwards-compatible orphan instances for base
 description:         @base-orphans@ defines orphan instances that mimic instances available in
                      later versions of @base@ to a wider (older) range of compilers.
diff --git a/src/Data/Orphans.hs b/src/Data/Orphans.hs
--- a/src/Data/Orphans.hs
+++ b/src/Data/Orphans.hs
@@ -130,6 +130,17 @@
 instance Applicative (Lazy.ST s) where
     pure  = return
     (<*>) = ap
+
+instance Ord TyCon where
+  compare x y = compare (tyConString x) (tyConString y)
+
+-- http://hackage.haskell.org/package/base-4.3.0.0/docs/Data-Typeable.html#t:TypeRep
+-- Notice that the `TypeRep` constructor is not exported
+-- and no pure accessor to its `Key` field is provided.
+instance Ord TypeRep where
+  compare x y =
+    compare (typeRepTyCon x) (typeRepTyCon x) `mappend`
+    compare (typeRepArgs x) (typeRepArgs y)
 #endif
 
 -- These instances are only valid if Bits isn't a subclass of Num (as Bool is
