data Dead : Set
open data Zaoqi (A : Type)
| essentially (A -> Dead)
open data Cat : Type
| meow : (Zaoqi Cat) → Cat
def catIsDead : Cat → Dead
| meow (essentially f) => f (meow (essentially f))
def catIsAlive : Cat
=> meow (essentially catIsDead)
def catIsBothDeadAndAlive: Dead
=> catIsDead catIsAlive
/cc @tsao-chi