type bool = +{'true : 1, 'false : 1} decl not (x : bool) : bool defn not x = match x with | 'true () => 'false () | 'false () => 'true ()