Index: src/AST/Pass.hpp
===================================================================
--- src/AST/Pass.hpp	(revision f8143a66ebf58b8335a0cd8bf5a0b1361a7cfd06)
+++ src/AST/Pass.hpp	(revision 968f280a1dea2b4d251e54c71f6ca668a1a14560)
@@ -265,17 +265,4 @@
 	result1<ast::Stmt> call_accept_as_compound(const ast::Stmt *);
 
-	template<typename it_t, template <class...> class container_t>
-		static inline void take_all_delta( it_t it, container_t<ast::ptr<ast::Decl>> * decls, bool * mutated = nullptr ) {
-			if(empty(decls)) return;
-
-			std::transform(decls->begin(), decls->end(), it, [](ast::ptr<ast::Decl>&& decl) -> auto {
-					auto loc = decl->location;
-					auto stmt = new DeclStmt( loc, decl.release() );
-					return { {stmt}, -1, false };
-				});
-			decls->clear();
-			if(mutated) *mutated = true;
-		}
-
 	// Container of statements
 	template< template <class...> class container_t >
Index: src/AST/Pass.impl.hpp
===================================================================
--- src/AST/Pass.impl.hpp	(revision f8143a66ebf58b8335a0cd8bf5a0b1361a7cfd06)
+++ src/AST/Pass.impl.hpp	(revision 968f280a1dea2b4d251e54c71f6ca668a1a14560)
@@ -160,5 +160,5 @@
 
 	template< typename core_t >
-	ast::Pass< core_t >::result1<ast::Expr> ast::Pass< core_t >::call_accept( const ast::Expr * expr ) {
+	typename ast::Pass< core_t >::template result1<ast::Expr> ast::Pass< core_t >::call_accept( const ast::Expr * expr ) {
 		__pedantic_pass_assert( __visit_children() );
 		__pedantic_pass_assert( expr );
@@ -174,5 +174,5 @@
 
 	template< typename core_t >
-	ast::Pass< core_t >::result1<ast::Stmt> ast::Pass< core_t >::call_accept( const ast::Stmt * stmt ) {
+	typename ast::Pass< core_t >::template result1<ast::Stmt> ast::Pass< core_t >::call_accept( const ast::Stmt * stmt ) {
 		__pedantic_pass_assert( __visit_children() );
 		__pedantic_pass_assert( stmt );
@@ -183,5 +183,5 @@
 
 	template< typename core_t >
-	ast::Pass< core_t >::result1<ast::Stmt> ast::Pass< core_t >::call_accept_as_compound( const ast::Stmt * stmt ) {
+	typename ast::Pass< core_t >::template result1<ast::Stmt> ast::Pass< core_t >::call_accept_as_compound( const ast::Stmt * stmt ) {
 		__pedantic_pass_assert( __visit_children() );
 		__pedantic_pass_assert( stmt );
@@ -258,5 +258,5 @@
 	template< typename core_t >
 	template< template <class...> class container_t >
-	ast::Pass< core_t >::resultNstmt<container_t> ast::Pass< core_t >::call_accept( const container_t< ptr<Stmt> > & statements ) {
+	typename ast::Pass< core_t >::template resultNstmt<container_t> ast::Pass< core_t >::call_accept( const container_t< ptr<Stmt> > & statements ) {
 		__pedantic_pass_assert( __visit_children() );
 		if( statements.empty() ) return {};
@@ -346,5 +346,5 @@
 	template< typename core_t >
 	template< template <class...> class container_t, typename node_t >
-	ast::Pass< core_t >::resultN<container_t, node_t> ast::Pass< core_t >::call_accept( const container_t< ast::ptr<node_t> > & container ) {
+	typename ast::Pass< core_t >::template resultN<container_t, node_t> ast::Pass< core_t >::call_accept( const container_t< ast::ptr<node_t> > & container ) {
 		__pedantic_pass_assert( __visit_children() );
 		if( container.empty() ) return {};
