diff --git a/GHood.cabal b/GHood.cabal
--- a/GHood.cabal
+++ b/GHood.cabal
@@ -1,5 +1,5 @@
 Name:            GHood
-Version:         0.0.4
+Version:         0.0.5
 License:         BSD3
 License-file:    LICENSE
 Copyright:
diff --git a/src/Debug/Observe.hs b/src/Debug/Observe.hs
--- a/src/Debug/Observe.hs
+++ b/src/Debug/Observe.hs
@@ -282,6 +282,13 @@
 -- | A simple state monad for placing numbers on sub-observations.
 newtype ObserverM a = ObserverM { runMO :: Int -> Int -> (a,Int) }
 
+instance Functor ObserverM where
+	fmap  = liftM
+
+instance Applicative ObserverM where
+	pure  = return
+	(<*>) = ap
+
 instance Monad ObserverM where
 	return a = ObserverM (\ c i -> (a,i))
 	fn >>= k = ObserverM (\ c i ->
