data T = V1 Int Int Int
   | V2 Int Double String
   | V3 String Int Int Int Int Int Int

なんていう型を要素として持つリストがあってさ、
そのリストの中から V3 の値構築子で作ったものだけが欲しい場合、

f :: [T] -> [T]
f = filter g

この関数 g は

g (V3 _ _ _ _ _ _ _) = True
g _ = False

とか case of を使って作る事になるが、アンダーバーが鬱陶しい

同じ(qualified な)名前の値構築子で引数の数(や型)が異なるものなんて無いのだから、
V3 にマッチするかどうか調べるのにアンダーバーすら書きたくないのが本音

でも現状、こうやってアンダーバーを書き連ねるしか方法は無いんだよね