From 5e31ff4aa1aaac083b8df88cb3515e97e336fe84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20B=C3=A4renz?= Date: Tue, 16 Apr 2024 15:14:13 +0200 Subject: [PATCH] Add trivial clock --- rhine/rhine.cabal | 1 + rhine/src/FRP/Rhine.hs | 1 + rhine/src/FRP/Rhine/Clock/Trivial.hs | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 rhine/src/FRP/Rhine/Clock/Trivial.hs 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