{-# OPTIONS --universe-polymorphism #-}
open import FRP.JS.Bool using ( Bool ; true ; false ; if_then_else_ ; not ; _∧_ )
module FRP.JS.True where
record ⊤ : Set where
constructor tt
data ⊥ : Set where
contradiction : ∀ {α} {A : Set α} → ⊥ → A
contradiction ()
True : Bool → Set
True true = ⊤
True false = ⊥
False : Bool → Set
False b = True b → ⊥
∧-intro : ∀ {a b} → True a → True b → True (a ∧ b)
∧-intro {false} () b
∧-intro {true} {false} tt ()
∧-intro {true} {true} tt tt = tt
∧-elim₁ : ∀ {a b} → True (a ∧ b) → True a
∧-elim₁ {false} ()
∧-elim₁ {true} b = tt
∧-elim₂ : ∀ {a b} → True (a ∧ b) → True b
∧-elim₂ {false} ()
∧-elim₂ {true} b = b
data Dec (b : Bool) : Set where
yes : True b → Dec b
no : False b → Dec b
{-# COMPILED_JS Dec function(x,v) {
if (x) { return v.yes(null); } else { return v.no(null); }
} #-}
{-# COMPILED_JS yes true #-}
{-# COMPILED_JS no false #-}
dec : ∀ b → Dec b
dec true = yes tt
dec false = no contradiction