diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+0.1.2.9
+  * Allow haskell-src-exts 1.16.
+
 0.1.2.8
   * Allow haskell-names 0.4.
 
diff --git a/halberd.cabal b/halberd.cabal
--- a/halberd.cabal
+++ b/halberd.cabal
@@ -1,5 +1,5 @@
 name:                halberd
-version:             0.1.2.8
+version:             0.1.2.9
 license:             BSD3
 license-file:        LICENSE
 author:              Erik Hesselink, Simon Meier, Tom Lokhorst, Roman Cheplyaka
@@ -24,7 +24,7 @@
                      , containers       >= 0.4    &&  < 0.6
                      , haskell-packages == 0.2.*
                      , haskell-names    >= 0.2    &&  < 0.5
-                     , haskell-src-exts >= 1.14   &&  < 1.16
+                     , haskell-src-exts >= 1.14   &&  < 1.17
                      , Cabal            >= 1.16   &&  < 1.22
                      , mtl              >= 2.0    &&  < 2.3
                      , safe             == 0.3.*
@@ -45,7 +45,7 @@
                      , halberd
                      , haskell-names    >= 0.2    &&  < 0.5
                      , haskell-packages == 0.2.*
-                     , haskell-src-exts >= 1.14   &&  < 1.16
+                     , haskell-src-exts >= 1.14   &&  < 1.17
                      , mtl              >= 2.0    &&  < 2.3
                      , safe             == 0.3.*
                      , tagged           >= 0.4    &&  < 0.8
@@ -64,7 +64,7 @@
                      , test-framework-hunit == 0.3.*
                      , haskell-names        >= 0.2    && < 0.5
                      , haskell-packages     == 0.2.*
-                     , haskell-src-exts     >= 1.14   && < 1.16
+                     , haskell-src-exts     >= 1.14   && < 1.17
                      , tagged               >= 0.4    && < 0.8
                      , split                == 0.2.*
                      , mtl                  >= 2.0    && < 2.3
diff --git a/src/Halberd/CollectNames.hs b/src/Halberd/CollectNames.hs
--- a/src/Halberd/CollectNames.hs
+++ b/src/Halberd/CollectNames.hs
@@ -47,12 +47,24 @@
     InfixA _ _ qn _ -> [(TypeSpace, qn)]
     IParam _ _ _    -> []
     EqualP _ _ _    -> []
+#if MIN_VERSION_haskell_src_exts(1,16,0)
+    VarA _ _        -> []
+    ParenA _ _      -> []
+#endif
 
+
 namesFromInstHead :: InstHead l -> [(NameSpace, QName l)]
 namesFromInstHead x = case x of
+#if MIN_VERSION_haskell_src_exts(1,16,0)
+    IHCon _ qn     -> [(TypeSpace, qn)]
+    IHInfix _ _ qn -> [(TypeSpace, qn)]
+    IHParen _ _    -> []
+    IHApp _ _ _    -> []
+#else
     IHead _ qn _     -> [(TypeSpace, qn)]
     IHInfix _ _ qn _ -> [(TypeSpace, qn)]
     IHParen _ _      -> []
+#endif
 
 namesFromType :: Type l -> [(NameSpace, QName l)]
 namesFromType x = case x of
@@ -68,6 +80,12 @@
     TyKind _ _ _     -> []
 #if MIN_VERSION_haskell_src_exts(1,15,0)
     TyPromoted _ _   -> []
+#if MIN_VERSION_haskell_src_exts(1,16,0)
+    TyParArray _ _   -> []
+    TyEquals _ _ _   -> []
+    TySplice _ _     -> []
+    TyBang _ _ _     -> []
+#endif
 
 namesFromPromoted :: Promoted l -> [(NameSpace, QName l)]
 namesFromPromoted x = case x of
@@ -81,57 +99,63 @@
 
 namesFromExp :: Exp l -> [(NameSpace, QName l)]
 namesFromExp x = case x of
-    Var _ qn               -> [(ValueSpace, qn)]
-    IPVar _ _              -> []
-    Con _ qn               -> [(ValueSpace, qn)]
-    Lit _ _                -> []
-    InfixApp _ _ _ _       -> []
-    App _ _ _              -> []
-    NegApp _ _             -> []
-    Lambda _ _ _           -> []
-    Let _ _ _              -> []
-    If _ _ _ _             -> []
+    Var _ qn                   -> [(ValueSpace, qn)]
+    IPVar _ _                  -> []
+    Con _ qn                   -> [(ValueSpace, qn)]
+    Lit _ _                    -> []
+    InfixApp _ _ _ _           -> []
+    App _ _ _                  -> []
+    NegApp _ _                 -> []
+    Lambda _ _ _               -> []
+    Let _ _ _                  -> []
+    If _ _ _ _                 -> []
 #if MIN_VERSION_haskell_src_exts(1,15,0)
-    MultiIf _ _            -> []
+    MultiIf _ _                -> []
 #endif
-    Case _ _ _             -> []
-    Do _ _                 -> []
-    MDo _ _                -> []
-    Tuple _ _ _            -> []
-    TupleSection _ _ _     -> []
-    List _ _               -> []
-    Paren _ _              -> []
-    LeftSection _ _ _      -> []
-    RightSection _ _ _     -> []
-    RecConstr _ qn _       -> [(ValueSpace, qn)]
-    RecUpdate _ _ _        -> []
-    EnumFrom _ _           -> []
-    EnumFromTo _ _ _       -> []
-    EnumFromThen _ _ _     -> []
-    EnumFromThenTo _ _ _ _ -> []
-    ListComp _ _ _         -> []
-    ParComp _ _ _          -> []
-    ExpTypeSig _ _ _       -> []
-    VarQuote _ qn          -> [(ValueSpace, qn)]
-    TypQuote _ qn          -> [(TypeSpace, qn)]
-    BracketExp _ _         -> []
-    SpliceExp _ _          -> []
-    QuasiQuote _ _ _       -> []
-    XTag _ _ _ _ _         -> []
-    XETag _ _ _ _          -> []
-    XPcdata _ _            -> []
-    XExpTag _ _            -> []
-    XChildTag _ _          -> []
-    CorePragma _ _ _       -> []
-    SCCPragma _ _ _        -> []
-    GenPragma _ _ _ _ _    -> []
-    Proc _ _ _             -> []
-    LeftArrApp _ _ _       -> []
-    RightArrApp _ _ _      -> []
-    LeftArrHighApp _ _ _   -> []
-    RightArrHighApp _ _ _  -> []
+    Case _ _ _                 -> []
+    Do _ _                     -> []
+    MDo _ _                    -> []
+    Tuple _ _ _                -> []
+    TupleSection _ _ _         -> []
+    List _ _                   -> []
+    Paren _ _                  -> []
+    LeftSection _ _ _          -> []
+    RightSection _ _ _         -> []
+    RecConstr _ qn _           -> [(ValueSpace, qn)]
+    RecUpdate _ _ _            -> []
+    EnumFrom _ _               -> []
+    EnumFromTo _ _ _           -> []
+    EnumFromThen _ _ _         -> []
+    EnumFromThenTo _ _ _ _     -> []
+    ListComp _ _ _             -> []
+    ParComp _ _ _              -> []
+    ExpTypeSig _ _ _           -> []
+    VarQuote _ qn              -> [(ValueSpace, qn)]
+    TypQuote _ qn              -> [(TypeSpace, qn)]
+    BracketExp _ _             -> []
+    SpliceExp _ _              -> []
+    QuasiQuote _ _ _           -> []
+    XTag _ _ _ _ _             -> []
+    XETag _ _ _ _              -> []
+    XPcdata _ _                -> []
+    XExpTag _ _                -> []
+    XChildTag _ _              -> []
+    CorePragma _ _ _           -> []
+    SCCPragma _ _ _            -> []
+    GenPragma _ _ _ _ _        -> []
+    Proc _ _ _                 -> []
+    LeftArrApp _ _ _           -> []
+    RightArrApp _ _ _          -> []
+    LeftArrHighApp _ _ _       -> []
+    RightArrHighApp _ _ _      -> []
 #if MIN_VERSION_haskell_src_exts(1,15,0)
-    LCase _ _              -> []
+    LCase _ _                  -> []
+#endif
+#if MIN_VERSION_haskell_src_exts(1,16,0)
+    ParArray _ _               -> []
+    ParArrayFromTo _ _ _       -> []
+    ParArrayFromThenTo _ _ _ _ -> []
+    ParArrayComp _ _ _         -> []
 #endif
 
 
