We may use the following type definition: type bool = True of unit ∣ False of unit and see the expression if a then a1 else a2 as syntactic sugar for match bool a with True x ⇒ a1 ∣ False x ⇒ a2.