Previously, subeverywhere would silently leave it unmodified.
transalt (con, binders, expr) = do
expr' <- trans expr
return (con, binders, expr')
transalt (con, binders, expr) = do
expr' <- trans expr
return (con, binders, expr')
-subeverywhere trans expr = return expr
+subeverywhere trans (Var x) = return $ Var x
+subeverywhere trans (Lit x) = return $ Lit x
+subeverywhere trans (Type x) = return $ Type x
+
+subeverywhere trans expr = error $ "NormalizeTools.subeverywhere Unsupported expression: " ++ show expr
-- Apply the given transformation to all expressions, except for direct
-- arguments of an application
-- Apply the given transformation to all expressions, except for direct
-- arguments of an application