import logic algebra.function open function bool constant f : num → bool constant g : num → num check f ∘ g ∘ g check typeof id : num → num check num → num ⟨is_typeof⟩ id constant h : num → bool → num check flip h check flip h ff num.zero check typeof flip h ff num.zero : num constant f1 : num → num → bool constant f2 : bool → num check (f1 on f2) ff tt