diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,8 +1,8 @@
 # Changelog for within
 
-## v0.0.1.1
+## v0.0.2.0
 
-Add docs
+* Add `Hashable` and `Ord` instances for `Within`.
 
 ## v0.0.1.0
 
diff --git a/src/Within.hs b/src/Within.hs
--- a/src/Within.hs
+++ b/src/Within.hs
@@ -17,6 +17,7 @@
 
 import Control.Monad.Catch
 import Data.Typeable
+import Data.Hashable
 import GHC.Generics
 import Path
 
@@ -24,6 +25,12 @@
 -- The two halves can be manipulated independently.
 newtype Within a t = Within (Path a Dir, Path Rel t)
   deriving (Typeable, Generic, Eq, Show)
+
+instance Hashable (Within a t) where
+  hashWithSalt n w = hashWithSalt n (fromWithin w)
+
+instance Ord (Within a t) where
+  compare (Within (x, y)) (Within (x',y')) = compare x x' <> compare y y'
 
 -- | Convert a `Within` to a `Path` by joining it with a path separator.
 fromWithin :: Within a t -> Path a t
diff --git a/within.cabal b/within.cabal
--- a/within.cabal
+++ b/within.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: d64000b16dcb0fb670b8181322d54239181b081453413aabeeddfc44536d945f
+-- hash: 004fe9914c61fa868f90faa3426e02ca5cd16bee28f31fe937952e591450cbe1
 
 name:           within
-version:        0.0.1.1
+version:        0.0.2.0
 synopsis:       A path within another path.
 description:    Simple type for representing a well-typed path within another path. Useful for when you need to jump between directories and change filenames independently. Uses the path library.
 category:       Filesystem
@@ -31,5 +31,6 @@
   build-depends:
       base >=4.7 && <5
     , exceptions
+    , hashable
     , path
   default-language: Haskell2010
