diff --git a/rhine/rhine.cabal b/rhine/rhine.cabal index defc33da..c1773b88 100644 --- a/rhine/rhine.cabal +++ b/rhine/rhine.cabal @@ -109,6 +109,7 @@ library FRP.Rhine.Clock.Realtime.Never FRP.Rhine.Clock.Realtime.Stdin FRP.Rhine.Clock.Select + FRP.Rhine.Clock.Trivial FRP.Rhine.Clock.Unschedule FRP.Rhine.Clock.Util FRP.Rhine.Reactimation diff --git a/rhine/src/FRP/Rhine.hs b/rhine/src/FRP/Rhine.hs index e85a516d..f341025e 100644 --- a/rhine/src/FRP/Rhine.hs +++ b/rhine/src/FRP/Rhine.hs @@ -41,6 +41,7 @@ import FRP.Rhine.Clock.Realtime.Millisecond as X import FRP.Rhine.Clock.Realtime.Never as X import FRP.Rhine.Clock.Realtime.Stdin as X import FRP.Rhine.Clock.Select as X +import FRP.Rhine.Clock.Trivial as X import FRP.Rhine.Clock.Unschedule as X import FRP.Rhine.ResamplingBuffer.Collect as X diff --git a/rhine/src/FRP/Rhine/Clock/Trivial.hs b/rhine/src/FRP/Rhine/Clock/Trivial.hs new file mode 100644 index 00000000..8518a303 --- /dev/null +++ b/rhine/src/FRP/Rhine/Clock/Trivial.hs @@ -0,0 +1,18 @@ +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 ((), ()), ()) + +instance GetClockProxy Trivial