>>957
たとえばVectorに対してリストっぽくパターンマッチしたいなら、
uncons :: Vector a -> Maybe (a, Vector a)
という関数を用意して、
pattern Cons x xs <- (uncons -> Just (x, xs))
pattern Nil <- (uncons -> Nothing)
とすればCons、Nilというパターンを定義できて、
それぞれVector版の(:)、[]のように使えるようになる
(この定義の右辺ではViewPatternsを使ってる)

>>959
されてない
パターン定義の右辺からクラスのメソッドを参照すれば似たようなことはできる