diff --git a/examples/NanoFeldspar/Vector.hs b/examples/NanoFeldspar/Vector.hs
--- a/examples/NanoFeldspar/Vector.hs
+++ b/examples/NanoFeldspar/Vector.hs
@@ -33,7 +33,6 @@
 
 instance Syntax a => Syntactic (Vector a)
   where
-    {-# SPECIALIZE instance Syntax a => Syntactic (Vector a) #-}
     {-# INLINABLE desugar #-}
     {-# INLINABLE sugar #-}
     type Domain (Vector a)   = FeldDomainAll
diff --git a/src/Data/DynamicAlt.hs b/src/Data/DynamicAlt.hs
--- a/src/Data/DynamicAlt.hs
+++ b/src/Data/DynamicAlt.hs
@@ -6,7 +6,7 @@
 
 import Data.Dynamic ()
 import Data.Typeable
-import GHC.Prim
+import GHC.Exts
 import Unsafe.Coerce
 
 import Data.PolyProxy
diff --git a/src/Language/Syntactic/Constraint.hs b/src/Language/Syntactic/Constraint.hs
--- a/src/Language/Syntactic/Constraint.hs
+++ b/src/Language/Syntactic/Constraint.hs
@@ -3,6 +3,9 @@
 {-# LANGUAGE OverlappingInstances #-}
 #endif
 {-# LANGUAGE UndecidableInstances #-}
+#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ >= 800)
+{-# LANGUAGE UndecidableSuperClasses #-}
+#endif
 
 
 -- | Type-constrained syntax trees
diff --git a/src/Language/Syntactic/Constructs/Binding/Optimize.hs b/src/Language/Syntactic/Constructs/Binding/Optimize.hs
--- a/src/Language/Syntactic/Constructs/Binding/Optimize.hs
+++ b/src/Language/Syntactic/Constructs/Binding/Optimize.hs
@@ -115,7 +115,7 @@
   where
     {-# SPECIALIZE instance Optimize Empty #-}
     {-# INLINABLE optimizeSym #-}
-    optimizeSym = error "Not implemented: optimizeSym for Empty"
+    optimizeSym _ _ _ _ = error "Not implemented: optimizeSym for Empty"
 
 instance Optimize dom => Optimize (SubConstr1 c dom p)
   where
diff --git a/src/Language/Syntactic/Constructs/Decoration.hs b/src/Language/Syntactic/Constructs/Decoration.hs
--- a/src/Language/Syntactic/Constructs/Decoration.hs
+++ b/src/Language/Syntactic/Constructs/Decoration.hs
@@ -136,11 +136,11 @@
 writeHtmlDecorWith :: forall info sym a. (StringTree sym)
                    => (forall sig. info sig -> String)
                    -> FilePath -> ASTF (Decor info sym) a -> IO ()
-writeHtmlDecorWith showInfo file = writeHtmlTree file . mkTree []
+writeHtmlDecorWith showInfo file = writeHtmlTree Nothing file . mkTree []
   where
     mkTree :: [Tree NodeInfo] -> AST (Decor info sym) sig -> Tree NodeInfo
     mkTree args (f :$ a) = mkTree (mkTree [] a : args) f
-    mkTree args (Sym (Decor info expr)) = Node (NodeInfo (renderSym expr) (showInfo info)) args
+    mkTree args (Sym (Decor info expr)) = Node (NodeInfo InitiallyExpanded (renderSym expr) (showInfo info)) args
 
 -- | Strip decorations from an 'AST'
 stripDecor :: AST (Decor info dom) sig -> AST dom sig
diff --git a/src/Language/Syntactic/Interpretation/Render.hs b/src/Language/Syntactic/Interpretation/Render.hs
--- a/src/Language/Syntactic/Interpretation/Render.hs
+++ b/src/Language/Syntactic/Interpretation/Render.hs
@@ -128,5 +128,5 @@
 {-# INLINABLE drawAST #-}
 
 writeHtmlAST :: StringTree sym => FilePath -> ASTF sym a -> IO ()
-writeHtmlAST file = writeHtmlTree file . fmap (\n -> NodeInfo n "") . stringTree
+writeHtmlAST file = writeHtmlTree Nothing file . fmap (\n -> NodeInfo InitiallyExpanded n "") . stringTree
 {-# INLINABLE writeHtmlAST #-}
diff --git a/syntactic.cabal b/syntactic.cabal
--- a/syntactic.cabal
+++ b/syntactic.cabal
@@ -1,5 +1,5 @@
 Name:           syntactic
-Version:        1.16.2
+Version:        1.17
 Synopsis:       Generic abstract syntax, and utilities for embedded languages
 Description:    This library provides:
                 .
@@ -101,7 +101,7 @@
 
   build-depends:
     array,
-    base >= 4 && < 4.9,
+    base >= 4 && < 5.9,
     containers,
     constraints,
     data-hash,
@@ -109,7 +109,7 @@
     mtl >= 2 && < 3,
     template-haskell,
     transformers >= 0.2,
-    tree-view,
+    tree-view >= 0.5,
     tuple >= 0.2
 
   hs-source-dirs: src
