type nat = Zero | S of nat;; type bool = True | False ;; let rec even x = match x with | Zero -> True | S(x') -> odd x' and odd x = match x with | Zero -> False | S(x') -> even x' ;; let main x = even x ;; ()