Учитывая
type Bla = A Int | B Int valA1 = A 1 valA2 = A 2
, могу ли я проверить, был ли valA1 построен с помощью конструктора valA2?
valA1
valA2
Универсального способа сравнения конструкторов не существует, но вы можете легко собрать свою собственную функцию:
isSameBlaConstructor : Bla -> Bla -> Bool isSameBlaConstructor x y = case (x, y) of (A _, A _) -> True (B _, B _) -> True _ -> False