diff --git a/src/Control/Varying/Event.hs b/src/Control/Varying/Event.hs
--- a/src/Control/Varying/Event.hs
+++ b/src/Control/Varying/Event.hs
@@ -296,10 +296,6 @@
     where check (Event b) = if p b then Event b else NoEvent
           check _ = NoEvent
 
--- | TODO:
--- | Produce events of a stream only when both streams produce events.
--- | Combine simultaneous events.
-
 -- | Never produces any event values.
 never :: Monad m => Var m b (Event c)
 never = pure NoEvent
@@ -352,16 +348,23 @@
                                          NoEvent -> v
                                          Event b -> f b
 
--- | Produce event values only when the input value passes the predicate.
--- Maintains state when 'cold'.
-onlyWhen :: Monad m => Var m a b -> (a -> Bool) -> Var m a (Event b)
+-- | Produce events of a varying value 'v' only when its input value passes a
+-- predicate 'f'.
+-- 'v' maintains state while cold.
+onlyWhen :: Monad m
+         => Var m a b -- ^ 'v' - The varying value
+         -> (a -> Bool) -- ^ 'f' - The predicate to run on 'v''s input values.
+         -> Var m a (Event b)
 onlyWhen v f = v `onlyWhenE` hot
     where hot = var id ~> onWhen f
 
--- | Produce event values from the first signal only when an event is
--- produced by the second signal.
--- Maintains state when 'cold'.
-onlyWhenE :: Monad m => Var m a b -> Var m a (Event c) -> Var m a (Event b)
+-- | Produce events of a varying value 'v' only when an event stream 'h'
+-- produces an event.
+-- 'v' and 'h' maintain state while cold.
+onlyWhenE :: Monad m
+          => Var m a b -- ^ 'v' - The varying value
+          -> Var m a (Event c) -- ^ 'h' - The event stream
+          -> Var m a (Event b)
 onlyWhenE v hot = Var $ \a -> do
     (e, hot') <- runVar hot a
     if isEvent e
diff --git a/varying.cabal b/varying.cabal
--- a/varying.cabal
+++ b/varying.cabal
@@ -10,7 +10,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:             0.1.1.0
+version:             0.1.1.1
 
 -- A short (one-line) description of the package.
 synopsis:            Automaton based varying values, event streams and tweening.
@@ -40,7 +40,7 @@
 -- A copyright notice.
 -- copyright:
 
-category:            Control
+category:            Control, FRP
 
 build-type:          Simple
 
