1{-# LANGUAGE PatternSynonyms #-} 2module ShouldCompile where 3 4pattern Single{x} = [x] 5 6pattern Double{y,z} = (y,z) 7 8pattern More{x} <- (x,_) where 9 More x = (x, Nothing) 10 11-- Selector 12selector :: Int 13selector = x [5] 14 15update :: [String] 16update = ["String"] { x = "updated" } 17