O-patrones en Haskell

En OCaml, estaba acostumbrado a escribir código que se parecía a:

let combine o1 o2 = match o1, o2 with
    | Valid, Invalid | Invalid, Valid -> Invalid
    | _ -> ...

No encontré una manera de escribiro-patrones en Haskell y realmente lo extraño. ¿Alguien tiene una solución?