open import FRP.JS.Nat using ( ℕ ) renaming ( _<_ to _<N_ ; _≤_ to _≤N_ )
open import FRP.JS.Bool using ( Bool ; true ; false ; not )
module FRP.JS.Char where
infix 4 _≟_ _≠_ _<_ _≤_
open import FRP.JS.Primitive public using ( Char )
private
primitive
primCharToNat : Char → ℕ
primCharEquality : Char → Char → Bool
toNat : Char → ℕ
toNat = primCharToNat
{-# COMPILED_JS toNat function(c) { return c.charCodeAt(0); } #-}
_≟_ : Char → Char → Bool
_≟_ = primCharEquality
{-# COMPILED_JS _≟_ function(c) { return function(d) { return c === d; }; } #-}
_≠_ : Char → Char → Bool
c ≠ d = not (c ≟ d)
{-# COMPILED_JS _≠_ function(c) { return function(d) { return c !== d; }; } #-}
_<_ : Char → Char → Bool
c < d = toNat c <N toNat d
{-# COMPILED_JS _<_ function(c) { return function(d) { return c < d; }; } #-}
_≤_ : Char → Char → Bool
c ≤ d = toNat c ≤N toNat d
{-# COMPILED_JS _≤_ function(c) { return function(d) { return c <= d; }; } #-}