diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,13 @@
 # Revision history for data-standards
 
+## 0.1.0.1
+
+* "Data.Standards.ISO.Country.Primary" now reexports the types unqualified
+* All ISO 3166-1 code types now have 'Ord' instances
+* 'enumFromThen' and 'enumFromThenTo' over 'Numeric' no longer throw an error
+  if the max bound was included in the sequence
+* Updated doumentation to reflect new name for Eswatini (SZ/SWZ/748)
+
 ## 0.1.0.0  -- 2018-07-06
 
 * ISO 3166-1, in all three variants (alpha-2, alpha-3, and numeric)
diff --git a/Data/Standards/ISO/Country/Primary.hs b/Data/Standards/ISO/Country/Primary.hs
--- a/Data/Standards/ISO/Country/Primary.hs
+++ b/Data/Standards/ISO/Country/Primary.hs
@@ -10,15 +10,14 @@
  -}
 module Data.Standards.ISO.Country.Primary
     ( module Data.Standards.ISO.Country.Primary.Translation
-    , A2.Alpha2 ( .. )
-    , A3.Alpha3 ( .. )
-    , N.Numeric ( .. )
-    , C.Status ( .. )
+    , Alpha2 ( .. )
+    , Alpha3 ( .. )
+    , Numeric ( .. )
+    , Status ( .. )
     ) where
 
-import qualified Data.Standards.ISO.Country.Primary.Alpha2 as A2
-import qualified Data.Standards.ISO.Country.Primary.Alpha3 as A3
-import qualified Data.Standards.ISO.Country.Primary.Common as C
-import qualified Data.Standards.ISO.Country.Primary.Numeric as N
+import Data.Standards.ISO.Country.Primary.Alpha2
+import Data.Standards.ISO.Country.Primary.Alpha3
+import Data.Standards.ISO.Country.Primary.Numeric
 
 import Data.Standards.ISO.Country.Primary.Translation
diff --git a/Data/Standards/ISO/Country/Primary/Alpha2.hs b/Data/Standards/ISO/Country/Primary/Alpha2.hs
--- a/Data/Standards/ISO/Country/Primary/Alpha2.hs
+++ b/Data/Standards/ISO/Country/Primary/Alpha2.hs
@@ -344,7 +344,7 @@
     | SV  -- ^ El Salvador
     | SX  -- ^ Sint Maarten (Dutch part)
     | SY  -- ^ Syrian Arab Republic
-    | SZ  -- ^ Swaziland
+    | SZ  -- ^ Eswatini
 
     | TA  -- ^ 'ExceptionalReservation': Tristan da Cunha
     | TC  -- ^ Turks and Caicos Islands (the)
@@ -401,7 +401,7 @@
     | ZM  -- ^ Zambia
     | ZR  -- ^ 'TransitionalReservation': Zaire
     | ZW  -- ^ Zimbabwe
-  deriving ( Eq, Show, Read, Enum, Bounded )
+  deriving ( Eq, Show, Read, Ord, Enum, Bounded )
 
 instance H.Hashable Alpha2 where
     hashWithSalt = H.hashUsing fromEnum
diff --git a/Data/Standards/ISO/Country/Primary/Alpha3.hs b/Data/Standards/ISO/Country/Primary/Alpha3.hs
--- a/Data/Standards/ISO/Country/Primary/Alpha3.hs
+++ b/Data/Standards/ISO/Country/Primary/Alpha3.hs
@@ -375,7 +375,7 @@
     | SVK  -- ^ Slovakia
     | SVN  -- ^ Slovenia
     | SWE  -- ^ Sweden
-    | SWZ  -- ^ Swaziland
+    | SWZ  -- ^ Eswatini
     | SXM  -- ^ Sint Maarten (Dutch part)
     | SYC  -- ^ Seychelles
     | SYR  -- ^ Syrian Arab Republic
@@ -434,7 +434,7 @@
     | ZMB  -- ^ Zambia
     | ZRE  -- ^ 'IndeterminateReservation': Zaire (road vehicles)
     | ZWE  -- ^ Zimbabwe
-  deriving ( Eq, Show, Read, Enum, Bounded )
+  deriving ( Eq, Show, Read, Ord, Enum, Bounded )
 
 instance H.Hashable Alpha3 where
     hashWithSalt = H.hashUsing fromEnum
diff --git a/Data/Standards/ISO/Country/Primary/Numeric.hs b/Data/Standards/ISO/Country/Primary/Numeric.hs
--- a/Data/Standards/ISO/Country/Primary/Numeric.hs
+++ b/Data/Standards/ISO/Country/Primary/Numeric.hs
@@ -298,7 +298,7 @@
     | C736  -- ^ 'Withdrawn': Sudan (the)
     | C740  -- ^ Suriname
     | C744  -- ^ Svalbard and Jan Mayen
-    | C748  -- ^ Swaziland
+    | C748  -- ^ Eswatini
 
     | C752  -- ^ Sweden
     | C756  -- ^ Switzerland
@@ -342,7 +342,7 @@
     | C890  -- ^ 'Withdrawn': Yugoslavia (Socialist Federal Republic of)
     | C891  -- ^ 'Withdrawn': Serbia and Montenegro
     | C894  -- ^ Zambia
-  deriving ( Eq, Show, Read, Bounded )
+  deriving ( Eq, Show, Read, Ord, Bounded )
 
 -- | The 'Int' values returned or processed by this instance are the true value
 -- of the country code, rather than being incremental.
@@ -362,25 +362,28 @@
     -- 'Int' lists -- running into the same problem with 6.3.4 -- and having a
     -- note that explicitly says they only make sense for injective mappings).
     enumFrom = flip enumFromTo maxBound
-    enumFromThen x y = enumFromThenTo x y bound
-       where bound
-               | fromEnum x <= fromEnum y = maxBound
-               | otherwise                = minBound
-
     enumFromTo x y
-        | x == y                  = [x]
-        | fromEnum x > fromEnum y = []
-        | otherwise               = x : enumFromTo (succ x) y
+        | x > y     = []
+        | x == y    = [x]
+        | otherwise = x : enumFromTo (succ x) y
 
-    enumFromThenTo x1 x2 y
-        | x1 == y   = []
-        | otherwise = x1 : count x1 x2
-      where count x1' x2'
-                | (fromEnum x2' <= fromEnum y) /= forward = [x2]
-                | x1' == x2 = enumFromThenTo x1' x2' y
-                | forward   = count (succ x1') (succ x2')
-                | otherwise = count (pred x1') (pred x2')
-            forward = fromEnum x1 < fromEnum x2
+    enumFromThen x s = enumFromThenTo x s bound
+       where bound
+               | x <= s    = maxBound
+               | otherwise = minBound
+    enumFromThenTo x s y
+        | past x y  = []
+        | otherwise = x : skipOver thenTo
+      where (ln, thenTo)       = break (== s) $ fromTo x
+            fromTo x1
+                | x1 == y      = [x1]
+                | otherwise    = x1 : fromTo (step x1)
+            (past, step)
+                | x <= s       = ((>), succ)
+                | otherwise    = ((<), pred)
+            n = length ln
+            skipOver []        = []
+            skipOver xs@(x1:_) = x1 : skipOver (drop n xs)
 
     --TODO: Depending on how the compiler transforms these, it might be better
     -- to put them into a lookup table; check with benchmarking.
@@ -632,7 +635,7 @@
     succ C891 = C894
 
     succ c
-        | c == maxBound = error "tried to take `succ' of last tag in enumeration"
+        | c == maxBound = error "succ(Numeric) tried to take `succ' of last tag in enumeration"
         | otherwise     = toEnum . (+) 1 $ fromEnum c
 
     pred C008 = C004
@@ -883,7 +886,7 @@
     pred C894 = C891
 
     pred c
-        | c == minBound = error "tried to take `pred' of first tag in enumeration"
+        | c == minBound = error "pred(Numeric) tried to take `pred' of first tag in enumeration"
         | otherwise     = toEnum . subtract 1 $ fromEnum c
 
 instance H.Hashable Numeric where
diff --git a/data-standards.cabal b/data-standards.cabal
--- a/data-standards.cabal
+++ b/data-standards.cabal
@@ -3,13 +3,15 @@
 category:           Data
 synopsis:           A collection of standards representable by simple data types.
 
+version:            0.1.0.1
+stability:          provisional
+maintainer:         ag.eitilt@gmail.com
+
 copyright:          (c) 2018 Samuel May
 license:            MPL-2.0
 license-file:       LICENSE
-
-version:            0.1.0.0
-stability:          provisional
-maintainer:         ag.eitilt@gmail.com
+extra-source-files: ChangeLog.md
+                  , README.md
 
 homepage:           https://github.com/ag-eitilt/data-standards
 bug-reports:        https://github.com/ag-eitilt/data-standards/issues
@@ -18,10 +20,8 @@
                     the ISO 3166-1 specification.
 
 cabal-version:      >=1.10
-extra-source-files: ChangeLog.md
-                  , README.md
 build-type:         Simple
-tested-with:        GHC ==8.0.2
+tested-with:        GHC ==8.0.2, GHC ==8.4.3
 
 source-repository head
   type:             git
@@ -30,7 +30,7 @@
 source-repository this
   type:             git
   location:         git://github.com/ag-eitilt/data-standards.git
-  tag:              v0.1.0.0
+  tag:              v0.1.0.1
 
 library
   exposed-modules:  Data.Standards.ISO.Country.Primary
@@ -39,7 +39,7 @@
                   , Data.Standards.ISO.Country.Primary.Numeric
                   , Data.Standards.ISO.Country.Primary.Translation
   other-modules:    Data.Standards.ISO.Country.Primary.Common
-  build-depends:    base >=4.9 && <4.10
+  build-depends:    base >=4.9 && <4.12
                   , hashable >=1.2 && <1.3
                   , unordered-containers <0.3
   default-language: Haskell98
