let orelse p q a b =
    match p a b with
      | None -> q a b
      | res -> res