abstract Test = { cat P ; cat E ; fun Exist : (E -> P) -> P ; Even : E -> P ; }