Template Haskell: add view patterns (Trac #2399)