rhine-1.6: src/FRP/Rhine/Clock/Trivial.hs
module FRP.Rhine.Clock.Trivial where
-- base
import Control.Arrow
-- rhine
import FRP.Rhine.Clock
import FRP.Rhine.Clock.Proxy (GetClockProxy)
-- | A clock that always returns the tick '()'.
data Trivial = Trivial
instance (Monad m) => Clock m Trivial where
type Time Trivial = ()
type Tag Trivial = ()
initClock _ = return (arr $ const ((), ()), ())
{-# INLINE initClock #-}
instance GetClockProxy Trivial