pattern-mathing is not exhaustive警告がうざいからと言って、

let f x = 
  match x with
      A -> ...
    | B -> ...
    ...
    | Q -> ...
    | _ -> print x; assert false

とか書いておくと、あとで新らしいコンストラクタRを足したときに、忘れることがわかった。

let f x =
  try
    match x with
        A -> ...
      | B -> ...
      ...
      | Q -> ...
  with
    Match_failure _ -> print x; assert false

と書くようにしよう。