diff --git a/app-src/Data/Point2d.hs b/app-src/Data/Point2d.hs
new file mode 100644
--- /dev/null
+++ b/app-src/Data/Point2d.hs
@@ -0,0 +1,27 @@
+{-# OPTIONS_HADDOCK hide #-}
+
+{-# LANGUAGE DeriveGeneric #-}
+
+module Data.Point2d where
+
+import Control.DeepSeq
+import Control.DeepSeq.Generics (genericRnf)
+import GHC.Generics
+import Test.QuickCheck
+
+data Point2d = Point2d Double Double deriving (Show, Eq, Ord, Generic)
+instance NFData Point2d where rnf = genericRnf
+
+pointAsList2d :: Point2d -> [Double]
+pointAsList2d (Point2d x y) = [x, y]
+
+distSqr2d :: Point2d -> Point2d -> Double
+distSqr2d (Point2d x1 y1) (Point2d x2 y2) = let dx = x2 - x1
+                                                dy = y2 - y1
+                                            in  dx*dx + dy*dy
+
+instance Arbitrary Point2d where
+    arbitrary = do
+        x <- arbitrary
+        y <- arbitrary
+        return (Point2d x y)
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+# 0.2.1
+* Relax upper version constraint for MonadRandom (benchmarking code)
+* Add Data.Point2d as dependency of executables so tests and benchmarks can be built from the archive downloaded on Hackage.
+
 # 0.2.0
 * Lots and lots of renaming all throughout to more closely match terminology used in `containers`.
 * Removed kdt library dependency on QuickCheck (if not building testing code).
diff --git a/kdt.cabal b/kdt.cabal
--- a/kdt.cabal
+++ b/kdt.cabal
@@ -2,7 +2,7 @@
 -- see http://haskell.org/cabal/users-guide/
 
 name:                kdt
-version:             0.2.0
+version:             0.2.1
 synopsis:            Fast and flexible k-d trees for various types of point queries.
 description:         This package includes static and dynamic versions of k-d trees,
                      as well as \"Map\" variants that store data at each point in the
@@ -45,6 +45,7 @@
 Test-Suite StaticTest
   type:                 exitcode-stdio-1.0
   main-is:              Tests/StaticTest.hs
+  other-modules:        Data.Point2d
   hs-source-dirs:       app-src
   ghc-options:          -Wall -O3
   build-depends:        base >=4.6 && <4.8,
@@ -57,6 +58,7 @@
 Test-Suite DynamicTest
   type:                 exitcode-stdio-1.0
   main-is:              Tests/DynamicTest.hs
+  other-modules:        Data.Point2d
   hs-source-dirs:       app-src
   ghc-options:          -Wall -O3
   build-depends:        base >=4.6 && <4.8,
@@ -69,13 +71,14 @@
 benchmark KDTBenchmark
   type:                 exitcode-stdio-1.0
   main-is:              Benchmarks/KDTBenchmark.hs
+  other-modules:        Data.Point2d
   hs-source-dirs:       app-src
   ghc-options:          -Wall -O3
   ghc-prof-options:     -Wall -O3 -fprof-auto
                         "-with-rtsopts=-p"
   build-depends:        base >=4.6 && <4.8,
                         kdt -any,
-                        MonadRandom >= 0.1.12 && <0.2,
+                        MonadRandom >= 0.1.12 && <0.4,
                         mersenne-random-pure64 >=0.2.0.4 && <0.3,
                         criterion >= 1.0.0.0 && <1.1,
                         pqueue >=1.2.1 && <1.3,
