let yes_or_no yes no a b =
    match yes a b with
      | Some(rho) -> 
          Three.Yes(rho)
      | None -> 
          (match no a b with
             | Some(rho) -> 
                 Three.No(rho) 
             | None ->
                 Three.X)