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