diff --git a/opentheory.cabal b/opentheory.cabal
--- a/opentheory.cabal
+++ b/opentheory.cabal
@@ -1,16 +1,16 @@
 name: opentheory
-version: 1.61
+version: 1.74
 category: Formal Methods
 synopsis: The Haskell base
 license: MIT
 license-file: LICENSE
 cabal-version: >= 1.8.0.6
 build-type: Simple
-author: Joe Hurd <joe@gilith.com>
-maintainer: Joe Hurd <joe@gilith.com>
+author: Joe Leslie-Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 description:
-  The Haskell base
-  Automatically generated from the opentheory package haskell-1.61
+  The Haskell base - automatically generated from the opentheory package
+  haskell-1.74
 
 library
   build-depends:
diff --git a/src/OpenTheory/Data/Byte.hs b/src/OpenTheory/Data/Byte.hs
--- a/src/OpenTheory/Data/Byte.hs
+++ b/src/OpenTheory/Data/Byte.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/src/OpenTheory/Data/Byte/Bits.hs b/src/OpenTheory/Data/Byte/Bits.hs
--- a/src/OpenTheory/Data/Byte/Bits.hs
+++ b/src/OpenTheory/Data/Byte/Bits.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/src/OpenTheory/Data/List.hs b/src/OpenTheory/Data/List.hs
--- a/src/OpenTheory/Data/List.hs
+++ b/src/OpenTheory/Data/List.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
@@ -30,6 +30,6 @@
 equal _ (_ : _) [] = False
 equal eq (h1 : t1) (h2 : t2) = eq h1 h2 && equal eq t1 t2
 
-size :: [a] -> Primitive.Natural.Natural
-size [] = 0
-size (_ : t) = 1 + size t
+length' :: [a] -> Primitive.Natural.Natural
+length' [] = 0
+length' (_ : t) = 1 + length' t
diff --git a/src/OpenTheory/Data/List/Geometric.hs b/src/OpenTheory/Data/List/Geometric.hs
--- a/src/OpenTheory/Data/List/Geometric.hs
+++ b/src/OpenTheory/Data/List/Geometric.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/src/OpenTheory/Data/Option.hs b/src/OpenTheory/Data/Option.hs
--- a/src/OpenTheory/Data/Option.hs
+++ b/src/OpenTheory/Data/Option.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/src/OpenTheory/Data/Stream.hs b/src/OpenTheory/Data/Stream.hs
--- a/src/OpenTheory/Data/Stream.hs
+++ b/src/OpenTheory/Data/Stream.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
@@ -14,6 +14,9 @@
 
 nth :: [a] -> Primitive.Natural.Natural -> a
 nth s n = if n == 0 then head s else nth (tail s) (n - 1)
+
+take' :: [a] -> Primitive.Natural.Natural -> [a]
+take' s n = if n == 0 then [] else head s : take' (tail s) (n - 1)
 
 unfold :: (b -> (a, b)) -> b -> [a]
 unfold f b = let (a, b') = f b in a : unfold f b'
diff --git a/src/OpenTheory/Data/Word16.hs b/src/OpenTheory/Data/Word16.hs
--- a/src/OpenTheory/Data/Word16.hs
+++ b/src/OpenTheory/Data/Word16.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/src/OpenTheory/Data/Word16/Bits.hs b/src/OpenTheory/Data/Word16/Bits.hs
--- a/src/OpenTheory/Data/Word16/Bits.hs
+++ b/src/OpenTheory/Data/Word16/Bits.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/src/OpenTheory/Number/Natural.hs b/src/OpenTheory/Number/Natural.hs
--- a/src/OpenTheory/Number/Natural.hs
+++ b/src/OpenTheory/Number/Natural.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
@@ -12,6 +12,9 @@
 
 import qualified OpenTheory.Primitive.Natural as Primitive.Natural
 import qualified OpenTheory.Primitive.Random as Primitive.Random
+
+divides :: Primitive.Natural.Natural -> Primitive.Natural.Natural -> Bool
+divides m n = if m == 0 then n == 0 else n `mod` m == 0
 
 fromRandom ::
   Primitive.Random.Random ->
diff --git a/src/OpenTheory/Number/Natural/Bits.hs b/src/OpenTheory/Number/Natural/Bits.hs
--- a/src/OpenTheory/Number/Natural/Bits.hs
+++ b/src/OpenTheory/Number/Natural/Bits.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/src/OpenTheory/Number/Natural/Geometric.hs b/src/OpenTheory/Number/Natural/Geometric.hs
--- a/src/OpenTheory/Number/Natural/Geometric.hs
+++ b/src/OpenTheory/Number/Natural/Geometric.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/src/OpenTheory/Number/Natural/Uniform.hs b/src/OpenTheory/Number/Natural/Uniform.hs
--- a/src/OpenTheory/Number/Natural/Uniform.hs
+++ b/src/OpenTheory/Number/Natural/Uniform.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/src/OpenTheory/Probability/Random.hs b/src/OpenTheory/Probability/Random.hs
--- a/src/OpenTheory/Probability/Random.hs
+++ b/src/OpenTheory/Probability/Random.hs
@@ -3,7 +3,7 @@
 description: The Haskell base
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
diff --git a/testsrc/Test.hs b/testsrc/Test.hs
--- a/testsrc/Test.hs
+++ b/testsrc/Test.hs
@@ -3,7 +3,7 @@
 description: The Haskell base - testing
 license: MIT
 
-maintainer: Joe Hurd <joe@gilith.com>
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
 stability: provisional
 portability: portable
 -}
@@ -15,6 +15,9 @@
 import qualified OpenTheory.Primitive.Random as Primitive.Random
 import qualified OpenTheory.Primitive.Test as Primitive.Test
 
+assertion0 :: Bool
+assertion0 = 2 + 2 == 4
+
 proposition0 :: Primitive.Random.Random -> Bool
 proposition0 r =
   let (n1, r') = Number.Natural.fromRandom r in
@@ -23,5 +26,6 @@
 
 main :: IO ()
 main =
-    do Primitive.Test.check "Proposition 0:\n  !r.\n    let (n1, r') <- H.fromRandom r in\n    let (n2, r'') <- H.fromRandom r' in\n    ~(n1 = n2) \\/ n2 = n1\n  " proposition0
+    do Primitive.Test.assert "Assertion 0:\n  2 + 2 = 4\n  " assertion0
+       Primitive.Test.check "Proposition 0:\n  !r.\n    let (n1, r') <- H.fromRandom r in\n    let (n2, r'') <- H.fromRandom r' in\n    ~(n1 = n2) \\/ n2 = n1\n  " proposition0
        return ()
