1{-# LANGUAGE PatternSynonyms #-} 2{-# LANGUAGE NoImplicitPrelude #-} 3{-# OPTIONS_GHC -Wall #-} 4module Simple where 5 6pattern Foo :: () 7 8pattern Foo = () 9 10a :: () -> () 11a Foo = () 12 13data A = B 14 | C 15 | D 16 17{-# COMPLETE Foo #-} 18 19{-# COMPLETE B, C #-} 20 21{-# COMPLETE B #-} 22 23b :: A -> A 24b B = B 25b C = C 26 27{-# COMPLETE Foo :: () #-} 28