Как проверить, созданы ли два значения с помощью одного и того же конструктора?

скажем, у меня есть

type t = A of int | B of int

let xx = A(2);;
let yy = A(3);;

, и я хочу проверить, равны ли конструкторы xx и yy, Есть простой способ сделать это ? Вместо того, чтобы использовать

match xx with
  A _ ->
  (match yy with A _ -> true | B _ -> false)
| B _ -> 
  (match yy with A _ -> false | B _ -> true);;

, что становится довольно беспорядочным, когда есть много конструкторов для типа

5
задан rightfold 18 September 2015 в 07:45
поделиться