diff --git a/hw-prim.cabal b/hw-prim.cabal
--- a/hw-prim.cabal
+++ b/hw-prim.cabal
@@ -1,5 +1,5 @@
 name:                   hw-prim
-version:                0.0.0.8
+version:                0.0.0.9
 synopsis:               Primitive functions and data types
 description:            Please see README.md
 homepage:               http://github.com/haskell-works/hw-prim#readme
@@ -30,6 +30,7 @@
                       , HaskellWorks.Data.FromForeignRegion
                       , HaskellWorks.Data.Positioning
                       , HaskellWorks.Data.Search
+                      , HaskellWorks.Data.TreeCursor
                       , HaskellWorks.Data.Vector.BoxedVectorLike
                       , HaskellWorks.Data.Vector.StorableVectorLike
                       , HaskellWorks.Data.Vector.VectorLike
diff --git a/src/HaskellWorks/Data/TreeCursor.hs b/src/HaskellWorks/Data/TreeCursor.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Data/TreeCursor.hs
@@ -0,0 +1,17 @@
+-- |
+-- Copyright: 2016 John Ky
+-- License: MIT
+--
+-- Tree Cursor
+module HaskellWorks.Data.TreeCursor
+    ( TreeCursor(..)
+    ) where
+
+import           HaskellWorks.Data.Positioning
+
+class TreeCursor k where
+  firstChild :: k -> k
+  nextSibling :: k -> k
+  parent :: k -> k
+  depth :: k -> Count
+  subtreeSize :: k -> Count
