{-# LANGUAGE PatternSynonyms #-} pattern Head x <- x : xs pattern Head' x <- x : xs pattern Head''{x} <- x : xs pattern FirstTwo{x, y} <- x : (y : xs) pattern FirstTwo' { x , y } <- x : (y : xs) pattern Simple <- "Simple" pattern WithTypeSig :: String pattern WithTypeSig <- "WithTypeSig"