match someRecord with | { A = 1; B = 2 } -> ... | _ -> ... - работает, а match someObj with | { A = 1; B = 2 } -> ... | _ -> ... нет. Скобочки могут быть любыми. Можно, конечно, написать let (|A|) x = ('a: (member A: unit -> 'b) x) и так же с (|B|), но актив паттерны тут не решают проблему, а просто её обходят. Хоть и позволяют написать match someObj with | A = 1 & B = 2 -> ... | _ -> ...