diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.1.0.7
+
+* Added `afters` and `befores`
+
 0.1.0.6
 
 * fix bug in depth-first search
diff --git a/src/Text/HTML/TagSoup/Navigate/Types/TagTreePosState.hs b/src/Text/HTML/TagSoup/Navigate/Types/TagTreePosState.hs
--- a/src/Text/HTML/TagSoup/Navigate/Types/TagTreePosState.hs
+++ b/src/Text/HTML/TagSoup/Navigate/Types/TagTreePosState.hs
@@ -32,7 +32,9 @@
 , nextSibling
 , content
 , before
+, befores
 , after
+, afters
 , parents
 , liftTagTreePosState
 , putTagTree
@@ -64,6 +66,7 @@
 import Data.Functor.Bind(Bind((>>-)))
 import Data.Functor.Const(Const)
 import Data.Functor.Identity(Identity(Identity, runIdentity))
+import Data.List.NonEmpty
 import Data.Maybe(Maybe(Nothing, Just))
 import Data.Semigroup(Semigroup((<>)))
 import Data.Monoid(Monoid(mempty, mappend), First)
@@ -326,10 +329,20 @@
 before =
   gets (view tagTreePosBefore)
 
+befores ::
+  TagTreePosState x (NonEmpty (TagTree x))
+befores =
+  liftA2 (:|) content before
+
 after ::
   TagTreePosState x [TagTree x]
 after =
   gets (view tagTreePosAfter)
+
+afters ::
+  TagTreePosState x (NonEmpty (TagTree x))
+afters =
+  liftA2 (:|) content after
 
 parents ::
   TagTreePosState x [TagTreePosParent x]
diff --git a/tagsoup-navigate.cabal b/tagsoup-navigate.cabal
--- a/tagsoup-navigate.cabal
+++ b/tagsoup-navigate.cabal
@@ -1,5 +1,5 @@
 name:                 tagsoup-navigate
-version:              0.1.0.6
+version:              0.1.0.7
 synopsis:             Tagsoup Navigate
 description:          Lenses and data types for navigating tagsoup
 license:              BSD3
