@@ -32,6 +32,7 @@ p_sigDecl' = \case
3232 InlineSig NoExt name inlinePragma -> p_inlineSig name inlinePragma
3333 SpecSig NoExt name ts inlinePragma -> p_specSig name ts inlinePragma
3434 MinimalSig NoExt _ booleanFormula -> p_minimalSig booleanFormula
35+ CompleteMatchSig NoExt _sourceText cs ty -> p_completeSig cs ty
3536 _ -> notImplemented "certain types of signature declarations"
3637
3738p_typeSig
@@ -157,3 +158,17 @@ p_booleanFormula = \case
157158 (located' p_booleanFormula)
158159 xs
159160 Parens l -> located l (parens . p_booleanFormula)
161+
162+p_completeSig
163+ :: Located [Located RdrName] -- ^ Constructors\/patterns
164+ -> Maybe (Located RdrName) -- ^ Type
165+ -> R ()
166+p_completeSig cs' mty =
167+ located cs' $ \cs ->
168+ pragma "COMPLETE" $ do
169+ velt (withSep comma p_rdrName cs)
170+ forM_ mty $ \ty -> do
171+ breakpoint
172+ inci $ do
173+ txt ":: "
174+ p_rdrName ty