-- | -- Module: Control.Wire.Trans.Time -- Copyright: (c) 2012 Ertugrul Soeylemez -- License: BSD3 -- Maintainer: Ertugrul Soeylemez -- -- Time-related wire combinators. module Control.Wire.Trans.Time ( -- * Local time mapTime ) where import Control.Arrow import Control.Monad import Control.Wire.Wire -- | Maps the given function over the time deltas for the given wire. -- -- * Complexity: like argument wire. -- -- * Depends: like argument wire. -- -- * Inhibits: like argument wire. mapTime :: (Monad m) => (Time -> Time) -> Wire e m a b -> Wire e m a b mapTime f w' = mkGen $ \dt -> liftM (second (mapTime f)) . stepWire w' (f dt)