foo (x:xs) = 〜(なんか関数)〜 (x:xs)

foo a@(x:xs) = 〜(なんか関数)〜 a

したとき、前者と後者は内部的に処理違ったりする?