Index: src/Concurrency/Actors.cpp
===================================================================
--- src/Concurrency/Actors.cpp	(revision b6f2e7abcc170946c8758bcf25e0848b57d5f213)
+++ src/Concurrency/Actors.cpp	(revision ed96731e0151e86950bd43918f4c4873b82f0102)
@@ -194,5 +194,5 @@
 // collects data needed for next pass that does the circular defn resolution
 //     for message send operators (via table above)
-struct GenFuncsCreateTables : public ast::WithDeclsToAdd<> {
+struct GenFuncsCreateTables : public ast::WithDeclsToAdd {
 	unordered_set<const StructDecl *> & actorStructDecls;
 	unordered_set<const StructDecl *>  & messageStructDecls;
@@ -451,5 +451,5 @@
 // separate pass is needed since this pass resolves circular defn issues
 // generates the forward declarations of the send operator for actor routines
-struct FwdDeclOperator : public ast::WithDeclsToAdd<> {
+struct FwdDeclOperator : public ast::WithDeclsToAdd {
 	unordered_set<const StructDecl *> & actorStructDecls;
 	unordered_set<const StructDecl *>  & messageStructDecls;
Index: src/Concurrency/Corun.cpp
===================================================================
--- src/Concurrency/Corun.cpp	(revision b6f2e7abcc170946c8758bcf25e0848b57d5f213)
+++ src/Concurrency/Corun.cpp	(revision ed96731e0151e86950bd43918f4c4873b82f0102)
@@ -25,5 +25,5 @@
 namespace Concurrency {
 
-struct CorunKeyword : public WithDeclsToAdd<>, public WithStmtsToAdd<> {
+struct CorunKeyword : public WithDeclsToAdd, public WithStmtsToAdd {
 	UniqueName CorunFnNamer = "__CFA_corun_lambda_"s;
 	UniqueName CoforFnNamer = "__CFA_cofor_lambda_"s;
Index: src/Concurrency/Keywords.cpp
===================================================================
--- src/Concurrency/Keywords.cpp	(revision b6f2e7abcc170946c8758bcf25e0848b57d5f213)
+++ src/Concurrency/Keywords.cpp	(revision ed96731e0151e86950bd43918f4c4873b82f0102)
@@ -117,5 +117,5 @@
 
 // --------------------------------------------------------------------------
-struct ConcurrentSueKeyword : public ast::WithDeclsToAdd<> {
+struct ConcurrentSueKeyword : public ast::WithDeclsToAdd {
 	ConcurrentSueKeyword(
 		std::string&& type_name, std::string&& field_name,
@@ -639,5 +639,5 @@
 // --------------------------------------------------------------------------
 struct SuspendKeyword final :
-		public ast::WithStmtsToAdd<>, public ast::WithGuards {
+		public ast::WithStmtsToAdd, public ast::WithGuards {
 	SuspendKeyword() = default;
 	virtual ~SuspendKeyword() = default;
@@ -860,5 +860,5 @@
 
 // --------------------------------------------------------------------------
-struct MutexKeyword final : public ast::WithDeclsToAdd<> {
+struct MutexKeyword final : public ast::WithDeclsToAdd {
 	const ast::FunctionDecl * postvisit( const ast::FunctionDecl * decl );
 	void postvisit( const ast::StructDecl * decl );
Index: src/Concurrency/Waituntil.cpp
===================================================================
--- src/Concurrency/Waituntil.cpp	(revision b6f2e7abcc170946c8758bcf25e0848b57d5f213)
+++ src/Concurrency/Waituntil.cpp	(revision ed96731e0151e86950bd43918f4c4873b82f0102)
@@ -1398,5 +1398,5 @@
 // To add the predicates at global scope we need to do it in a second pass
 // Predicates are added after "struct select_node { ... };"
-class AddPredicateDecls final : public WithDeclsToAdd<> {
+class AddPredicateDecls final : public WithDeclsToAdd {
 	vector<FunctionDecl *> & satFns;
 	const StructDecl * selectNodeDecl = nullptr;
