data Bool : Set where
  false true : Bool

data Nat : Set where
  zero : Nat
  suc  : Nat  Nat

data List (A : Set) : Set where
  empty : List A
  cons  : A  List A  List A

add : Nat  Nat  Nat
add zero y = y
add (suc x) y = suc (add x y)

times : Nat  Nat  Nat
times zero y = zero
times (suc x) y = add y (times x y)

and : Bool  Bool  Bool
and false _ = false
and true  b = b

or : Bool  Bool  Bool
or true _  = true
or false b = b

test : List Bool
test = cons true (cons false (cons true (cons false empty)))
{-# COMPILE AGDA2LAMBOX test #-}
Debug λ☐ Rocq