diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.1.0.2
+
+* change `TagPosTreeState` combinators to use `Identity`.
+
 0.1.0.1
 
 * more functions.
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
@@ -231,9 +231,8 @@
   TagTreePosStateT (fmap (fmap (\q -> (q, ()))) . k)
 
 modifyTagTreePosState ::
-  Applicative f =>
   (TagTreePos x -> Maybe (TagTreePos x))
-  -> TagTreePosStateT x f ()
+  -> TagTreePosState x ()
 modifyTagTreePosState k =
   modifyTagTreePosStateT (pure . k)
 
@@ -245,9 +244,8 @@
   TagTreePosStateT (\p -> fmap (fmap (\a -> (p, a))) (k p))
 
 getsTagTreePosState ::
-  Applicative f =>
   (TagTreePos x -> Maybe a)
-  -> TagTreePosStateT x f a
+  -> TagTreePosState x a
 getsTagTreePosState k =
   getsTagTreePosStateT (pure . k)
 
@@ -259,9 +257,8 @@
   getsTagTreePosStateT . pure
 
 maybeTagTreePosState ::
-  Applicative f =>
   Maybe a
-  -> TagTreePosStateT x f a
+  -> TagTreePosState x a
 maybeTagTreePosState =
   getsTagTreePosState . pure
 
@@ -273,75 +270,63 @@
   TagTreePosStateT (pure (fmap (fmap (\p -> (p, ()))) x))
 
 putTagTreePosState ::
-  Applicative f =>
   Maybe (TagTreePos x)
-  -> TagTreePosStateT x f ()
+  -> TagTreePosState x ()
 putTagTreePosState =
   putTagTreePosStateT . pure
 
 getTagTreePos ::
-  Applicative f =>
-  TagTreePosStateT x f (TagTree x)
+  TagTreePosState x (TagTree x)
 getTagTreePos =
   liftTagTreePosState getTagTreePos
 
 root ::
-  Monad f =>
-  TagTreePosStateT str f ()
+  TagTreePosState str ()
 root =
   modify (view (from tagsoupTagTreePos) . TagSoup.root . view tagsoupTagTreePos)
   
 parent ::
-  Monad f =>
-  TagTreePosStateT str f ()
+  TagTreePosState str ()
 parent =
   modifyTagTreePosState (fmap (view (from tagsoupTagTreePos)) . TagSoup.parent . view tagsoupTagTreePos)
   
 firstChild ::
-  Monad f =>
-  TagTreePosStateT str f ()
+  TagTreePosState str ()
 firstChild =
   modifyTagTreePosState (fmap (view (from tagsoupTagTreePos)) . TagSoup.firstChild . view tagsoupTagTreePos)
   
 lastChild ::
-  Monad f =>
-  TagTreePosStateT str f ()
+  TagTreePosState str ()
 lastChild =
   modifyTagTreePosState (fmap (view (from tagsoupTagTreePos)) . TagSoup.lastChild . view tagsoupTagTreePos)
   
 prevSibling ::
-  Monad f =>
-  TagTreePosStateT str f ()
+  TagTreePosState str ()
 prevSibling =
   modifyTagTreePosState (fmap (view (from tagsoupTagTreePos)) . TagSoup.prevSibling . view tagsoupTagTreePos)
   
 nextSibling ::
-  Monad f =>
-  TagTreePosStateT str f ()
+  TagTreePosState str ()
 nextSibling =
   modifyTagTreePosState (fmap (view (from tagsoupTagTreePos)) . TagSoup.nextSibling . view tagsoupTagTreePos)
   
 content ::
-  Monad f =>
-  TagTreePosStateT x f (TagTree x)
+  TagTreePosState x (TagTree x)
 content =
   gets (view tagTreePosContent)
 
 before ::
-  Monad f =>
-  TagTreePosStateT x f [TagTree x]
+  TagTreePosState x [TagTree x]
 before =
   gets (view tagTreePosBefore)
 
 after ::
-  Monad f =>
-  TagTreePosStateT x f [TagTree x]
+  TagTreePosState x [TagTree x]
 after =
   gets (view tagTreePosAfter)
 
 parents ::
-  Monad f =>
-  TagTreePosStateT x f [TagTreePosParent x]
+  TagTreePosState x [TagTreePosParent x]
 parents =
   gets (view tagTreePosParents)
 
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.1
+version:              0.1.0.2
 synopsis:             Tagsoup Navigate
 description:          Lenses and data types for navigating tagsoup
 license:              BSD3
