open import FRP.JS.Nat using ( ℕ ; _*_ ) open import FRP.JS.Bool using ( Bool ) open import FRP.JS.String using ( String ) open import FRP.JS.RSet using ( ⟦_⟧ ; ⟨_⟩ ) open import FRP.JS.Behaviour using ( Beh ) open import FRP.JS.Delay using ( Delay ) renaming ( _≟_ to _≟d_ ; _≠_ to _≠d_ ; _≤_ to _≤d_ ; _<_ to _<d_ ; _+_ to _+d_ ; _∸_ to _∸d_ ) module FRP.JS.Time where open import FRP.JS.Time.Core public using ( Time ; epoch ) _≟_ : Time → Time → Bool epoch t ≟ epoch u = t ≟d u {-# COMPILED_JS _≟_ function(d) { return function(e) { return d === e; }; } #-} _≠_ : Time → Time → Bool epoch t ≠ epoch u = t ≠d u {-# COMPILED_JS _≠_ function(d) { return function(e) { return d !== e; }; } #-} _≤_ : Time → Time → Bool epoch t ≤ epoch u = t ≤d u {-# COMPILED_JS _≤_ function(d) { return function(e) { return d <= e; }; } #-} _<_ : Time → Time → Bool epoch t < epoch u = t <d u {-# COMPILED_JS _<_ function(d) { return function(e) { return d < e; }; } #-} _+_ : Time → Delay → Time epoch t + d = epoch (t +d d) {-# COMPILED_JS _+_ function(d) { return function(e) { return d + e; }; } #-} _∸_ : Time → Time → Delay epoch t ∸ epoch u = t ∸d u {-# COMPILED_JS _∸_ function(d) { return function(e) { return Math.min(0, d - e); }; } #-} postulate toUTCString : Time → String every : Delay → ⟦ Beh ⟨ Time ⟩ ⟧ {-# COMPILED_JS toUTCString function(t) { return require("agda.frp").date(t).toUTCString(); } #-} {-# COMPILED_JS every function(d) { return function(t) { return require("agda.frp").every(d); }; } #-}