This is probably a stupid question but I can't seem to understand the use of @ in haskell pattern matching.

Ex -
compress (x:ys@(y:_))
| x==y = compress us
| otherwise = x : compress us
compress us = us

Thanks!