Index: src/AST/Pass.hpp
===================================================================
--- src/AST/Pass.hpp	(revision e6b42e7a226ea0d0e4d4f46d30734a2ee84d96cb)
+++ src/AST/Pass.hpp	(revision b9fa85b6bb101567c376a002614067feab620b7b)
@@ -118,4 +118,5 @@
 
 	// Versions of the above for older compilers.
+	template< typename... Args >
 	static void run( std::list< ptr<Decl> > & decls ) {
 		Pass<core_t> visitor;
@@ -123,7 +124,8 @@
 	}
 
-	static auto read( Node const * node ) {
+	template< typename node_type, typename... Args >
+	static auto read( node_type const * node ) {
 		Pass<core_t> visitor;
-		Node const * temp = node->accept( visitor );
+		node_type const * temp = node->accept( visitor );
 		assert( temp == node );
 		return visitor.get_result();
