Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision db70fe486deb21f8bc7f6dec306f1c81a12695b0)
+++ src/Common/PassVisitor.impl.h	(revision 3e3d9236d51340f5361d57ef7e44e0c1d26211f1)
@@ -66,4 +66,5 @@
 	DeclList_t* beforeDecls = visitor.get_beforeDecls();
 	DeclList_t* afterDecls  = visitor.get_afterDecls();
+	SemanticError errors;
 
 	for ( std::list< Declaration* >::iterator i = decls.begin(); ; ++i ) {
@@ -73,10 +74,18 @@
 		if ( i == decls.end() ) break;
 
-		// run mutator on declaration
-		maybeAccept( *i, visitor );
+		try {
+			// run visitor on declaration
+			maybeAccept( *i, visitor );
+		} catch( SemanticError &e ) {
+			e.set_location( (*i)->location );
+			errors.append( e );
+		}
 
 		// splice in new declarations before current decl
 		if ( !empty( beforeDecls ) ) { decls.splice( i, *beforeDecls ); }
 	}
+	if ( ! errors.isEmpty() ) {
+		throw errors;
+	}
 }
 
@@ -86,4 +95,5 @@
 	DeclList_t* beforeDecls = mutator.get_beforeDecls();
 	DeclList_t* afterDecls  = mutator.get_afterDecls();
+	SemanticError errors;
 
 	for ( std::list< Declaration* >::iterator i = decls.begin(); ; ++i ) {
@@ -92,10 +102,17 @@
 
 		if ( i == decls.end() ) break;
-
-		// run mutator on declaration
-		*i = maybeMutate( *i, mutator );
+		try {
+			// run mutator on declaration
+			*i = maybeMutate( *i, mutator );
+		} catch( SemanticError &e ) {
+			e.set_location( (*i)->location );
+			errors.append( e );
+		}
 
 		// splice in new declarations before current decl
 		if ( !empty( beforeDecls ) ) { decls.splice( i, *beforeDecls ); }
+	}
+	if ( ! errors.isEmpty() ) {
+		throw errors;
 	}
 }
@@ -445,5 +462,5 @@
 	indexerAddEnum( node );
 
-	// unlike structs, contexts, and unions, enums inject their members into the global scope
+	// unlike structs, traits, and unions, enums inject their members into the global scope
 	maybeMutateRef( node->parameters, *this );
 	maybeMutateRef( node->members   , *this );
Index: src/Common/PassVisitor.proto.h
===================================================================
--- src/Common/PassVisitor.proto.h	(revision db70fe486deb21f8bc7f6dec306f1c81a12695b0)
+++ src/Common/PassVisitor.proto.h	(revision 3e3d9236d51340f5361d57ef7e44e0c1d26211f1)
@@ -179,5 +179,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_enterScope( pass_type &, int ) {}
+static inline auto indexer_impl_enterScope( pass_type &, long ) {}
 
 template<typename pass_type>
@@ -187,5 +187,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_leaveScope( pass_type &, int ) {}
+static inline auto indexer_impl_leaveScope( pass_type &, long ) {}
 
 
@@ -197,5 +197,5 @@
                                                                                                                                \
 template<typename pass_type>                                                                                                   \
-static inline void indexer_impl_##func ( pass_type &, long, type ) {}                                                          \
+static inline void indexer_impl_##func ( pass_type &, long, type ) { }                                                          \
 
 INDEXER_FUNC( addId     , DeclarationWithType * );
@@ -215,5 +215,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_addStructFwd( pass_type &, int, StructDecl * ) {}
+static inline auto indexer_impl_addStructFwd( pass_type &, long, StructDecl * ) {}
 
 template<typename pass_type>
@@ -225,5 +225,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_addUnionFwd( pass_type &, int, UnionDecl * ) {}
+static inline auto indexer_impl_addUnionFwd( pass_type &, long, UnionDecl * ) {}
 
 template<typename pass_type>
@@ -235,5 +235,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_addStruct( pass_type &, int, const std::string & ) {}
+static inline auto indexer_impl_addStruct( pass_type &, long, const std::string & ) {}
 
 template<typename pass_type>
@@ -245,3 +245,3 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_addUnion( pass_type &, int, const std::string & ) {}
+static inline auto indexer_impl_addUnion( pass_type &, long, const std::string & ) {}
Index: src/SymTab/Indexer.cc
===================================================================
--- src/SymTab/Indexer.cc	(revision db70fe486deb21f8bc7f6dec306f1c81a12695b0)
+++ src/SymTab/Indexer.cc	(revision 3e3d9236d51340f5361d57ef7e44e0c1d26211f1)
@@ -37,5 +37,5 @@
 #include "SynTree/Type.h"          // for Type, StructInstType, UnionInstType
 
-#define debugPrint(x) if ( doDebug ) { std::cout << x; }
+#define debugPrint(x) if ( doDebug ) { std::cerr << x; }
 
 namespace SymTab {
Index: src/SymTab/Indexer.h
===================================================================
--- src/SymTab/Indexer.h	(revision db70fe486deb21f8bc7f6dec306f1c81a12695b0)
+++ src/SymTab/Indexer.h	(revision 3e3d9236d51340f5361d57ef7e44e0c1d26211f1)
@@ -104,5 +104,5 @@
 
 		void print( std::ostream &os, int indent = 0 ) const;
-	  private:
+
 		/// looks up a specific mangled ID at the given scope
 		DeclarationWithType *lookupIdAtScope( const std::string &id, const std::string &mangleName, unsigned long scope ) const;
@@ -127,4 +127,5 @@
 		void addTrait( TraitDecl *decl );
 
+	  private:
 		struct Impl;
 
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision db70fe486deb21f8bc7f6dec306f1c81a12695b0)
+++ src/SymTab/Validate.cc	(revision 3e3d9236d51340f5361d57ef7e44e0c1d26211f1)
@@ -123,23 +123,20 @@
 
 	/// Associates forward declarations of aggregates with their definitions
-	class LinkReferenceToTypes final : public Indexer {
-		typedef Indexer Parent;
-	  public:
-		LinkReferenceToTypes( bool doDebug, const Indexer *indexer );
-		using Parent::visit;
-		void visit( TypeInstType *typeInst ) final;
-
-		void visit( EnumInstType *enumInst ) final;
-		void visit( StructInstType *structInst ) final;
-		void visit( UnionInstType *unionInst ) final;
-		void visit( TraitInstType *traitInst ) final;
-
-		void visit( EnumDecl *enumDecl ) final;
-		void visit( StructDecl *structDecl ) final;
-		void visit( UnionDecl *unionDecl ) final;
-		void visit( TraitDecl * traitDecl ) final;
+	struct LinkReferenceToTypes final : public WithIndexer {
+		LinkReferenceToTypes( const Indexer *indexer );
+		void postvisit( TypeInstType *typeInst );
+
+		void postvisit( EnumInstType *enumInst );
+		void postvisit( StructInstType *structInst );
+		void postvisit( UnionInstType *unionInst );
+		void postvisit( TraitInstType *traitInst );
+
+		void postvisit( EnumDecl *enumDecl );
+		void postvisit( StructDecl *structDecl );
+		void postvisit( UnionDecl *unionDecl );
+		void postvisit( TraitDecl * traitDecl );
 
 	  private:
-		const Indexer *indexer;
+		const Indexer *local_indexer;
 
 		typedef std::map< std::string, std::list< EnumInstType * > > ForwardEnumsType;
@@ -152,14 +149,7 @@
 
 	/// Replaces array and function types in forall lists by appropriate pointer type and assigns each Object and Function declaration a unique ID.
-	class ForallPointerDecay final : public Indexer {
-		typedef Indexer Parent;
-	  public:
-	  	using Parent::visit;
-		ForallPointerDecay( const Indexer *indexer );
-
-		virtual void visit( ObjectDecl *object ) override;
-		virtual void visit( FunctionDecl *func ) override;
-
-		const Indexer *indexer;
+	struct ForallPointerDecay final {
+		void previsit( ObjectDecl *object );
+		void previsit( FunctionDecl *func );
 	};
 
@@ -263,8 +253,8 @@
 	};
 
-	void validate( std::list< Declaration * > &translationUnit, bool doDebug ) {
+	void validate( std::list< Declaration * > &translationUnit, __attribute__((unused)) bool doDebug ) {
 		PassVisitor<EnumAndPointerDecay> epc;
-		LinkReferenceToTypes lrt( doDebug, 0 );
-		ForallPointerDecay fpd( 0 );
+		PassVisitor<LinkReferenceToTypes> lrt( nullptr );
+		PassVisitor<ForallPointerDecay> fpd;
 		PassVisitor<CompoundLiteral> compoundliteral;
 		PassVisitor<ValidateGenericParameters> genericParams;
@@ -293,6 +283,6 @@
 	void validateType( Type *type, const Indexer *indexer ) {
 		PassVisitor<EnumAndPointerDecay> epc;
-		LinkReferenceToTypes lrt( false, indexer );
-		ForallPointerDecay fpd( indexer );
+		PassVisitor<LinkReferenceToTypes> lrt( indexer );
+		PassVisitor<ForallPointerDecay> fpd;
 		type->accept( epc );
 		type->accept( lrt );
@@ -408,15 +398,14 @@
 	}
 
-	LinkReferenceToTypes::LinkReferenceToTypes( bool doDebug, const Indexer *other_indexer ) : Indexer( doDebug ) {
+	LinkReferenceToTypes::LinkReferenceToTypes( const Indexer *other_indexer ) {
 		if ( other_indexer ) {
-			indexer = other_indexer;
+			local_indexer = other_indexer;
 		} else {
-			indexer = this;
-		} // if
-	}
-
-	void LinkReferenceToTypes::visit( EnumInstType *enumInst ) {
-		Parent::visit( enumInst );
-		EnumDecl *st = indexer->lookupEnum( enumInst->get_name() );
+			local_indexer = &indexer;
+		} // if
+	}
+
+	void LinkReferenceToTypes::postvisit( EnumInstType *enumInst ) {
+		EnumDecl *st = local_indexer->lookupEnum( enumInst->get_name() );
 		// it's not a semantic error if the enum is not found, just an implicit forward declaration
 		if ( st ) {
@@ -430,7 +419,6 @@
 	}
 
-	void LinkReferenceToTypes::visit( StructInstType *structInst ) {
-		Parent::visit( structInst );
-		StructDecl *st = indexer->lookupStruct( structInst->get_name() );
+	void LinkReferenceToTypes::postvisit( StructInstType *structInst ) {
+		StructDecl *st = local_indexer->lookupStruct( structInst->get_name() );
 		// it's not a semantic error if the struct is not found, just an implicit forward declaration
 		if ( st ) {
@@ -444,7 +432,6 @@
 	}
 
-	void LinkReferenceToTypes::visit( UnionInstType *unionInst ) {
-		Parent::visit( unionInst );
-		UnionDecl *un = indexer->lookupUnion( unionInst->get_name() );
+	void LinkReferenceToTypes::postvisit( UnionInstType *unionInst ) {
+		UnionDecl *un = local_indexer->lookupUnion( unionInst->get_name() );
 		// it's not a semantic error if the union is not found, just an implicit forward declaration
 		if ( un ) {
@@ -499,7 +486,5 @@
 	}
 
-	void LinkReferenceToTypes::visit( TraitDecl * traitDecl ) {
-		Parent::visit( traitDecl );
-
+	void LinkReferenceToTypes::postvisit( TraitDecl * traitDecl ) {
 		if ( traitDecl->name == "sized" ) {
 			// "sized" is a special trait - flick the sized status on for the type variable
@@ -523,8 +508,7 @@
 	}
 
-	void LinkReferenceToTypes::visit( TraitInstType * traitInst ) {
-		Parent::visit( traitInst );
+	void LinkReferenceToTypes::postvisit( TraitInstType * traitInst ) {
 		// handle other traits
-		TraitDecl *traitDecl = indexer->lookupTrait( traitInst->name );
+		TraitDecl *traitDecl = local_indexer->lookupTrait( traitInst->name );
 		if ( ! traitDecl ) {
 			throw SemanticError( "use of undeclared trait " + traitInst->name );
@@ -547,7 +531,6 @@
 	}
 
-	void LinkReferenceToTypes::visit( EnumDecl *enumDecl ) {
+	void LinkReferenceToTypes::postvisit( EnumDecl *enumDecl ) {
 		// visit enum members first so that the types of self-referencing members are updated properly
-		Parent::visit( enumDecl );
 		if ( ! enumDecl->get_members().empty() ) {
 			ForwardEnumsType::iterator fwds = forwardEnums.find( enumDecl->get_name() );
@@ -561,8 +544,7 @@
 	}
 
-	void LinkReferenceToTypes::visit( StructDecl *structDecl ) {
+	void LinkReferenceToTypes::postvisit( StructDecl *structDecl ) {
 		// visit struct members first so that the types of self-referencing members are updated properly
-		// xxx - need to ensure that type parameters match up between forward declarations and definition (most importantly, number of type parameters and and their defaults)
-		Parent::visit( structDecl );
+		// xxx - need to ensure that type parameters match up between forward declarations and definition (most importantly, number of type parameters and their defaults)
 		if ( ! structDecl->get_members().empty() ) {
 			ForwardStructsType::iterator fwds = forwardStructs.find( structDecl->get_name() );
@@ -576,6 +558,5 @@
 	}
 
-	void LinkReferenceToTypes::visit( UnionDecl *unionDecl ) {
-		Parent::visit( unionDecl );
+	void LinkReferenceToTypes::postvisit( UnionDecl *unionDecl ) {
 		if ( ! unionDecl->get_members().empty() ) {
 			ForwardUnionsType::iterator fwds = forwardUnions.find( unionDecl->get_name() );
@@ -589,17 +570,9 @@
 	}
 
-	void LinkReferenceToTypes::visit( TypeInstType *typeInst ) {
-		if ( NamedTypeDecl *namedTypeDecl = lookupType( typeInst->get_name() ) ) {
+	void LinkReferenceToTypes::postvisit( TypeInstType *typeInst ) {
+		if ( NamedTypeDecl *namedTypeDecl = local_indexer->lookupType( typeInst->get_name() ) ) {
 			if ( TypeDecl *typeDecl = dynamic_cast< TypeDecl * >( namedTypeDecl ) ) {
 				typeInst->set_isFtype( typeDecl->get_kind() == TypeDecl::Ftype );
 			} // if
-		} // if
-	}
-
-	ForallPointerDecay::ForallPointerDecay( const Indexer *other_indexer ) :  Indexer( false ) {
-		if ( other_indexer ) {
-			indexer = other_indexer;
-		} else {
-			indexer = this;
 		} // if
 	}
@@ -633,16 +606,14 @@
 	}
 
-	void ForallPointerDecay::visit( ObjectDecl *object ) {
+	void ForallPointerDecay::previsit( ObjectDecl *object ) {
 		forallFixer( object->get_type() );
 		if ( PointerType *pointer = dynamic_cast< PointerType * >( object->get_type() ) ) {
 			forallFixer( pointer->get_base() );
 		} // if
-		Parent::visit( object );
 		object->fixUniqueId();
 	}
 
-	void ForallPointerDecay::visit( FunctionDecl *func ) {
+	void ForallPointerDecay::previsit( FunctionDecl *func ) {
 		forallFixer( func->get_type() );
-		Parent::visit( func );
 		func->fixUniqueId();
 	}
Index: src/tests/.expect/32/literals.txt
===================================================================
--- src/tests/.expect/32/literals.txt	(revision db70fe486deb21f8bc7f6dec306f1c81a12695b0)
+++ src/tests/.expect/32/literals.txt	(revision 3e3d9236d51340f5361d57ef7e44e0c1d26211f1)
@@ -5,306 +5,4 @@
 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
 extern signed int printf(const char *__restrict __format, ...);
-union __anonymous0 {
-    unsigned int __wch;
-    char __wchb[((unsigned int )4)];
-};
-static inline void ___constructor__F_R13u__anonymous0_autogen___1(__attribute__ ((unused)) union __anonymous0 *___dst__R13u__anonymous0_1){
-}
-static inline void ___constructor__F_R13u__anonymous013u__anonymous0_autogen___1(union __anonymous0 *___dst__R13u__anonymous0_1, union __anonymous0 ___src__13u__anonymous0_1){
-    ((void)__builtin_memcpy(((void *)___dst__R13u__anonymous0_1), ((const void *)(&___src__13u__anonymous0_1)), sizeof(union __anonymous0 )));
-}
-static inline void ___destructor__F_R13u__anonymous0_autogen___1(__attribute__ ((unused)) union __anonymous0 *___dst__R13u__anonymous0_1){
-}
-static inline union __anonymous0 ___operator_assign__F13u__anonymous0_R13u__anonymous013u__anonymous0_autogen___1(union __anonymous0 *___dst__R13u__anonymous0_1, union __anonymous0 ___src__13u__anonymous0_1){
-    union __anonymous0 ___ret__13u__anonymous0_1;
-    ((void)__builtin_memcpy(((void *)___dst__R13u__anonymous0_1), ((const void *)(&___src__13u__anonymous0_1)), sizeof(union __anonymous0 )));
-    ((void)___constructor__F_R13u__anonymous013u__anonymous0_autogen___1((&___ret__13u__anonymous0_1), ___src__13u__anonymous0_1));
-    return ((union __anonymous0 )___ret__13u__anonymous0_1);
-}
-static inline void ___constructor__F_R13u__anonymous0Ui_autogen___1(__attribute__ ((unused)) union __anonymous0 *___dst__R13u__anonymous0_1, unsigned int __src__Ui_1){
-    ((void)__builtin_memcpy(((void *)___dst__R13u__anonymous0_1), ((const void *)(&__src__Ui_1)), sizeof(unsigned int )));
-}
-struct __anonymous1 {
-    signed int __count;
-    union __anonymous0 __value;
-};
-struct __anonymous1;
-struct __anonymous1;
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbrtoc16(unsigned short int *__restrict __pc16, const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __p);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int c16rtomb(char *__restrict __s, unsigned short int __c16, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbrtoc32(unsigned int *__restrict __pc32, const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __p);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int c32rtomb(char *__restrict __s, unsigned int __c32, struct __anonymous1 *__restrict __ps);
-struct _IO_FILE;
-struct _IO_FILE;
-struct _IO_FILE;
-struct tm;
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed long int *wcscpy(signed long int *__restrict __dest, const signed long int *__restrict __src);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed long int *wcsncpy(signed long int *__restrict __dest, const signed long int *__restrict __src, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed long int *wcscat(signed long int *__restrict __dest, const signed long int *__restrict __src);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed long int *wcsncat(signed long int *__restrict __dest, const signed long int *__restrict __src, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__,__pure__,__nonnull__(1, 2))) extern signed int wcscmp(const signed long int *__s1, const signed long int *__s2);
-__attribute__ ((__nothrow__,__leaf__,__pure__,__nonnull__(1, 2))) extern signed int wcsncmp(const signed long int *__s1, const signed long int *__s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscasecmp(const signed long int *__s1, const signed long int *__s2);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcsncasecmp(const signed long int *__s1, const signed long int *__s2, unsigned int __n);
-struct __locale_struct {
-    struct __locale_data *__locales[((unsigned int )13)];
-    const unsigned short int *__ctype_b;
-    const signed int *__ctype_tolower;
-    const signed int *__ctype_toupper;
-    const char *__names[((unsigned int )13)];
-};
-static inline void ___constructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1);
-static inline void ___constructor__F_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1);
-static inline void ___destructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1);
-static inline struct __locale_struct ___operator_assign__F16s__locale_struct_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1);
-static inline void ___constructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1){
-    {
-        signed int _index0 = ((signed int )0);
-        for (;(_index0<13);((void)(++_index0))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index0])))) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index1 = ((signed int )0);
-        for (;(_index1<13);((void)(++_index1))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index1])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1){
-    {
-        signed int _index2 = ((signed int )0);
-        for (;(_index2<13);((void)(++_index2))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index2])))=___src__16s__locale_struct_1.__locales[_index2]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=___src__16s__locale_struct_1.__ctype_b) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=___src__16s__locale_struct_1.__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=___src__16s__locale_struct_1.__ctype_toupper) /* ?{} */);
-    {
-        signed int _index3 = ((signed int )0);
-        for (;(_index3<13);((void)(++_index3))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index3])))=___src__16s__locale_struct_1.__names[_index3]) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___destructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1){
-    {
-        signed int _index4 = ((signed int )(13-1));
-        for (;(_index4>=0);((void)(--_index4))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index4])))) /* ^?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ^?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ^?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b) /* ^?{} */);
-    {
-        signed int _index5 = ((signed int )(13-1));
-        for (;(_index5>=0);((void)(--_index5))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index5])))) /* ^?{} */);
-        }
-
-    }
-}
-static inline struct __locale_struct ___operator_assign__F16s__locale_struct_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1){
-    struct __locale_struct ___ret__16s__locale_struct_1;
-    {
-        signed int _index6 = ((signed int )0);
-        for (;(_index6<13);((void)(++_index6))) {
-            ((void)((*___dst__R16s__locale_struct_1).__locales[_index6]=___src__16s__locale_struct_1.__locales[_index6]));
-        }
-
-    }
-
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=___src__16s__locale_struct_1.__ctype_b));
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=___src__16s__locale_struct_1.__ctype_tolower));
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=___src__16s__locale_struct_1.__ctype_toupper));
-    {
-        signed int _index7 = ((signed int )0);
-        for (;(_index7<13);((void)(++_index7))) {
-            ((void)((*___dst__R16s__locale_struct_1).__names[_index7]=___src__16s__locale_struct_1.__names[_index7]));
-        }
-
-    }
-
-    ((void)___constructor__F_R16s__locale_struct16s__locale_struct_autogen___1((&___ret__16s__locale_struct_1), ___src__16s__locale_struct_1));
-    return ((struct __locale_struct )___ret__16s__locale_struct_1);
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_data_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)]){
-    {
-        signed int _index8 = ((signed int )0);
-        for (;(_index8<13);((void)(++_index8))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index8])))=____locales__A0P14s__locale_data_1[_index8]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index9 = ((signed int )0);
-        for (;(_index9<13);((void)(++_index9))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index9])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUs_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)], const unsigned short int *____ctype_b__PCUs_1){
-    {
-        signed int _index10 = ((signed int )0);
-        for (;(_index10<13);((void)(++_index10))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index10])))=____locales__A0P14s__locale_data_1[_index10]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index11 = ((signed int )0);
-        for (;(_index11<13);((void)(++_index11))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index11])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUsPCi_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)], const unsigned short int *____ctype_b__PCUs_1, const signed int *____ctype_tolower__PCi_1){
-    {
-        signed int _index12 = ((signed int )0);
-        for (;(_index12<13);((void)(++_index12))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index12])))=____locales__A0P14s__locale_data_1[_index12]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=____ctype_tolower__PCi_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index13 = ((signed int )0);
-        for (;(_index13<13);((void)(++_index13))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index13])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUsPCiPCi_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)], const unsigned short int *____ctype_b__PCUs_1, const signed int *____ctype_tolower__PCi_1, const signed int *____ctype_toupper__PCi_1){
-    {
-        signed int _index14 = ((signed int )0);
-        for (;(_index14<13);((void)(++_index14))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index14])))=____locales__A0P14s__locale_data_1[_index14]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=____ctype_tolower__PCi_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=____ctype_toupper__PCi_1) /* ?{} */);
-    {
-        signed int _index15 = ((signed int )0);
-        for (;(_index15<13);((void)(++_index15))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index15])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUsPCiPCiA0PCc_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)], const unsigned short int *____ctype_b__PCUs_1, const signed int *____ctype_tolower__PCi_1, const signed int *____ctype_toupper__PCi_1, const char *____names__A0PCc_1[((unsigned int )13)]){
-    {
-        signed int _index16 = ((signed int )0);
-        for (;(_index16<13);((void)(++_index16))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index16])))=____locales__A0P14s__locale_data_1[_index16]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=____ctype_tolower__PCi_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=____ctype_toupper__PCi_1) /* ?{} */);
-    {
-        signed int _index17 = ((signed int )0);
-        for (;(_index17<13);((void)(++_index17))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index17])))=____names__A0PCc_1[_index17]) /* ?{} */);
-        }
-
-    }
-}
-struct __locale_struct;
-struct __locale_struct;
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscasecmp_l(const signed long int *__s1, const signed long int *__s2, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcsncasecmp_l(const signed long int *__s1, const signed long int *__s2, unsigned int __n, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscoll(const signed long int *__s1, const signed long int *__s2);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsxfrm(signed long int *__restrict __s1, const signed long int *__restrict __s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscoll_l(const signed long int *__s1, const signed long int *__s2, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsxfrm_l(signed long int *__s1, const signed long int *__s2, unsigned int __n, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern signed long int *wcsdup(const signed long int *__s);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wcschr(const signed long int *__wcs, signed long int __wc);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wcsrchr(const signed long int *__wcs, signed long int __wc);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned int wcscspn(const signed long int *__wcs, const signed long int *__reject);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned int wcsspn(const signed long int *__wcs, const signed long int *__accept);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wcspbrk(const signed long int *__wcs, const signed long int *__accept);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wcsstr(const signed long int *__haystack, const signed long int *__needle);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wcstok(signed long int *__restrict __s, const signed long int *__restrict __delim, signed long int **__restrict __ptr);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned int wcslen(const signed long int *__s);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned int wcsnlen(const signed long int *__s, unsigned int __maxlen);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wmemchr(const signed long int *__s, signed long int __c, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int wmemcmp(const signed long int *__s1, const signed long int *__s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wmemcpy(signed long int *__restrict __s1, const signed long int *__restrict __s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wmemmove(signed long int *__s1, const signed long int *__s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wmemset(signed long int *__s, signed long int __c, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int btowc(signed int __c);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wctob(unsigned int __c);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int mbsinit(const struct __anonymous1 *__ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbrtowc(signed long int *__restrict __pwc, const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __p);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcrtomb(char *__restrict __s, signed long int __wc, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int __mbrlen(const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbrlen(const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbsrtowcs(signed long int *__restrict __dst, const char **__restrict __src, unsigned int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsrtombs(char *__restrict __dst, const signed long int **__restrict __src, unsigned int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbsnrtowcs(signed long int *__restrict __dst, const char **__restrict __src, unsigned int __nmc, unsigned int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsnrtombs(char *__restrict __dst, const signed long int **__restrict __src, unsigned int __nwc, unsigned int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern double wcstod(const signed long int *__restrict __nptr, signed long int **__restrict __endptr);
-__attribute__ ((__nothrow__,__leaf__)) extern float wcstof(const signed long int *__restrict __nptr, signed long int **__restrict __endptr);
-__attribute__ ((__nothrow__,__leaf__)) extern long double wcstold(const signed long int *__restrict __nptr, signed long int **__restrict __endptr);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int wcstol(const signed long int *__restrict __nptr, signed long int **__restrict __endptr, signed int __base);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int wcstoul(const signed long int *__restrict __nptr, signed long int **__restrict __endptr, signed int __base);
-__extension__ __attribute__ ((__nothrow__,__leaf__)) extern signed long long int wcstoll(const signed long int *__restrict __nptr, signed long int **__restrict __endptr, signed int __base);
-__extension__ __attribute__ ((__nothrow__,__leaf__)) extern unsigned long long int wcstoull(const signed long int *__restrict __nptr, signed long int **__restrict __endptr, signed int __base);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wcpcpy(signed long int *__restrict __dest, const signed long int *__restrict __src);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wcpncpy(signed long int *__restrict __dest, const signed long int *__restrict __src, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern struct _IO_FILE *open_wmemstream(signed long int **__bufloc, unsigned int *__sizeloc);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int fwide(struct _IO_FILE *__fp, signed int __mode);
-extern signed int fwprintf(struct _IO_FILE *__restrict __stream, const signed long int *__restrict __format, ...);
-extern signed int wprintf(const signed long int *__restrict __format, ...);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int swprintf(signed long int *__restrict __s, unsigned int __n, const signed long int *__restrict __format, ...);
-extern signed int vfwprintf(struct _IO_FILE *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg);
-extern signed int vwprintf(const signed long int *__restrict __format, __builtin_va_list __arg);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int vswprintf(signed long int *__restrict __s, unsigned int __n, const signed long int *__restrict __format, __builtin_va_list __arg);
-extern signed int fwscanf(struct _IO_FILE *__restrict __stream, const signed long int *__restrict __format, ...);
-extern signed int wscanf(const signed long int *__restrict __format, ...);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int swscanf(const signed long int *__restrict __s, const signed long int *__restrict __format, ...);
-extern signed int fwscanf(struct _IO_FILE *__restrict __stream, const signed long int *__restrict __format, ...) asm ( "" "__isoc99_fwscanf" );
-extern signed int wscanf(const signed long int *__restrict __format, ...) asm ( "" "__isoc99_wscanf" );
-__attribute__ ((__nothrow__,__leaf__)) extern signed int swscanf(const signed long int *__restrict __s, const signed long int *__restrict __format, ...) asm ( "" "__isoc99_swscanf" );
-extern signed int vfwscanf(struct _IO_FILE *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg);
-extern signed int vwscanf(const signed long int *__restrict __format, __builtin_va_list __arg);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int vswscanf(const signed long int *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg);
-extern signed int vfwscanf(struct _IO_FILE *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg) asm ( "" "__isoc99_vfwscanf" );
-extern signed int vwscanf(const signed long int *__restrict __format, __builtin_va_list __arg) asm ( "" "__isoc99_vwscanf" );
-__attribute__ ((__nothrow__,__leaf__)) extern signed int vswscanf(const signed long int *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg) asm ( "" "__isoc99_vswscanf" );
-extern unsigned int fgetwc(struct _IO_FILE *__stream);
-extern unsigned int getwc(struct _IO_FILE *__stream);
-extern unsigned int getwchar(void);
-extern unsigned int fputwc(signed long int __wc, struct _IO_FILE *__stream);
-extern unsigned int putwc(signed long int __wc, struct _IO_FILE *__stream);
-extern unsigned int putwchar(signed long int __wc);
-extern signed long int *fgetws(signed long int *__restrict __ws, signed int __n, struct _IO_FILE *__restrict __stream);
-extern signed int fputws(const signed long int *__restrict __ws, struct _IO_FILE *__restrict __stream);
-extern unsigned int ungetwc(unsigned int __wc, struct _IO_FILE *__stream);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsftime(signed long int *__restrict __s, unsigned int __maxsize, const signed long int *__restrict __format, const struct tm *__restrict __tp);
 void __for_each__A2_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_assign__PFt1_Rt1t1____constructor__PF_Rt1____constructor__PF_Rt1t1____destructor__PF_Rt1____operator_preincr__PFt0_Rt0____operator_predecr__PFt0_Rt0____operator_equal__PFi_t0t0____operator_notequal__PFi_t0t0____operator_deref__PFRt1_t0__F_t0t0PF_t1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object0)(), void *__anonymous_object1), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object2)(), void *__anonymous_object3), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object4)(), void *__anonymous_object5, void *__anonymous_object6), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object7)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object8), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object9)(), void *__anonymous_object10, void *__anonymous_object11), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object12)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object13, void *__anonymous_object14), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object15)(), void *__anonymous_object16, void *__anonymous_object17), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object18)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object19, void *__anonymous_object20), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object21, void *__anonymous_object22), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object23), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object24, void *__anonymous_object25), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object26), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object27, void *__anonymous_object28), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object29), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object30, void *__anonymous_object31), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object32), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object33), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object34), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object35, void *__anonymous_object36), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object37, void *__anonymous_object38), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object39), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object40));
 void __for_each_reverse__A2_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_assign__PFt1_Rt1t1____constructor__PF_Rt1____constructor__PF_Rt1t1____destructor__PF_Rt1____operator_preincr__PFt0_Rt0____operator_predecr__PFt0_Rt0____operator_equal__PFi_t0t0____operator_notequal__PFi_t0t0____operator_deref__PFRt1_t0__F_t0t0PF_t1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object41)(), void *__anonymous_object42), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object43)(), void *__anonymous_object44), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object45)(), void *__anonymous_object46, void *__anonymous_object47), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object48)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object49), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object50)(), void *__anonymous_object51, void *__anonymous_object52), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object53)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object54, void *__anonymous_object55), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object56)(), void *__anonymous_object57, void *__anonymous_object58), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object59)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object60, void *__anonymous_object61), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object62, void *__anonymous_object63), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object64), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object65, void *__anonymous_object66), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object67), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object68, void *__anonymous_object69), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object70), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object71, void *__anonymous_object72), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object73), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object74), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object75), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object76, void *__anonymous_object77), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object78, void *__anonymous_object79), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object80), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object81));
@@ -423,6 +121,6 @@
 struct _Istream_cstrC __cstr__F15s_Istream_cstrC_Pci__1(char *__anonymous_object1283, signed int __size__i_1);
 void *___operator_bitor__A0_1_0_0___fail__PFi_Pd0___eof__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___read__PFPd0_Pd0PcUl___ungetc__PFPd0_Pd0c___fmt__PFi_Pd0PCc__FPd0_Pd015s_Istream_cstrC__1(__attribute__ ((unused)) signed int (*__fail__PFi_P7tistype__1)(void *__anonymous_object1284), __attribute__ ((unused)) signed int (*__eof__PFi_P7tistype__1)(void *__anonymous_object1285), __attribute__ ((unused)) void (*__open__PF_P7tistypePCcPCc__1)(void *__is__P7tistype_1, const char *__name__PCc_1, const char *__mode__PCc_1), __attribute__ ((unused)) void (*__close__PF_P7tistype__1)(void *__is__P7tistype_1), __attribute__ ((unused)) void *(*__read__PFP7tistype_P7tistypePcUl__1)(void *__anonymous_object1286, char *__anonymous_object1287, unsigned long int __anonymous_object1288), __attribute__ ((unused)) void *(*__ungetc__PFP7tistype_P7tistypec__1)(void *__anonymous_object1289, char __anonymous_object1290), __attribute__ ((unused)) signed int (*__fmt__PFi_P7tistypePCc__1)(void *__anonymous_object1291, const char *__fmt__PCc_1, ...), void *__anonymous_object1292, struct _Istream_cstrC __anonymous_object1293);
-enum __anonymous2 {
-    __sepSize__C13e__anonymous2_1 = ((signed int )16),
+enum __anonymous0 {
+    __sepSize__C13e__anonymous0_1 = ((signed int )16),
 };
 struct ofstream {
@@ -432,6 +130,6 @@
     _Bool __sawNL__b_1;
     const char *__sepCur__PCc_1;
-    char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)];
-    char __tupleSeparator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)];
+    char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)];
+    char __tupleSeparator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)];
 };
 static inline void ___constructor__F_R9sofstream_autogen___1(struct ofstream *___dst__R9sofstream_1);
@@ -446,14 +144,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index18 = ((signed int )0);
-        for (;(_index18<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index18))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index18])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index19 = ((signed int )0);
-        for (;(_index19<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index19))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index19])))) /* ?{} */);
+        signed int _index0 = ((signed int )0);
+        for (;(_index0<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index0))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index0])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index1 = ((signed int )0);
+        for (;(_index1<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index1))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index1])))) /* ?{} */);
         }
 
@@ -467,14 +165,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=___src__9sofstream_1.__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index20 = ((signed int )0);
-        for (;(_index20<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index20))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index20])))=___src__9sofstream_1.__separator__A0c_1[_index20]) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index21 = ((signed int )0);
-        for (;(_index21<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index21))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index21])))=___src__9sofstream_1.__tupleSeparator__A0c_1[_index21]) /* ?{} */);
+        signed int _index2 = ((signed int )0);
+        for (;(_index2<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index2))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index2])))=___src__9sofstream_1.__separator__A0c_1[_index2]) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index3 = ((signed int )0);
+        for (;(_index3<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index3))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index3])))=___src__9sofstream_1.__tupleSeparator__A0c_1[_index3]) /* ?{} */);
         }
 
@@ -483,14 +181,14 @@
 static inline void ___destructor__F_R9sofstream_autogen___1(struct ofstream *___dst__R9sofstream_1){
     {
-        signed int _index22 = ((signed int )(((signed int )__sepSize__C13e__anonymous2_1)-1));
-        for (;(_index22>=0);((void)(--_index22))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index22])))) /* ^?{} */);
-        }
-
-    }
-    {
-        signed int _index23 = ((signed int )(((signed int )__sepSize__C13e__anonymous2_1)-1));
-        for (;(_index23>=0);((void)(--_index23))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index23])))) /* ^?{} */);
+        signed int _index4 = ((signed int )(((signed int )__sepSize__C13e__anonymous0_1)-1));
+        for (;(_index4>=0);((void)(--_index4))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index4])))) /* ^?{} */);
+        }
+
+    }
+    {
+        signed int _index5 = ((signed int )(((signed int )__sepSize__C13e__anonymous0_1)-1));
+        for (;(_index5>=0);((void)(--_index5))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index5])))) /* ^?{} */);
         }
 
@@ -510,15 +208,15 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=___src__9sofstream_1.__sepCur__PCc_1));
     {
-        signed int _index24 = ((signed int )0);
-        for (;(_index24<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index24))) {
-            ((void)((*___dst__R9sofstream_1).__separator__A0c_1[_index24]=___src__9sofstream_1.__separator__A0c_1[_index24]));
-        }
-
-    }
-
-    {
-        signed int _index25 = ((signed int )0);
-        for (;(_index25<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index25))) {
-            ((void)((*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index25]=___src__9sofstream_1.__tupleSeparator__A0c_1[_index25]));
+        signed int _index6 = ((signed int )0);
+        for (;(_index6<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index6))) {
+            ((void)((*___dst__R9sofstream_1).__separator__A0c_1[_index6]=___src__9sofstream_1.__separator__A0c_1[_index6]));
+        }
+
+    }
+
+    {
+        signed int _index7 = ((signed int )0);
+        for (;(_index7<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index7))) {
+            ((void)((*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index7]=___src__9sofstream_1.__tupleSeparator__A0c_1[_index7]));
         }
 
@@ -535,14 +233,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index26 = ((signed int )0);
-        for (;(_index26<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index26))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index26])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index27 = ((signed int )0);
-        for (;(_index27<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index27))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index27])))) /* ?{} */);
+        signed int _index8 = ((signed int )0);
+        for (;(_index8<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index8))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index8])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index9 = ((signed int )0);
+        for (;(_index9<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index9))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index9])))) /* ?{} */);
         }
 
@@ -556,14 +254,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index28 = ((signed int )0);
-        for (;(_index28<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index28))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index28])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index29 = ((signed int )0);
-        for (;(_index29<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index29))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index29])))) /* ?{} */);
+        signed int _index10 = ((signed int )0);
+        for (;(_index10<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index10))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index10])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index11 = ((signed int )0);
+        for (;(_index11<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index11))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index11])))) /* ?{} */);
         }
 
@@ -577,14 +275,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index30 = ((signed int )0);
-        for (;(_index30<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index30))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index30])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index31 = ((signed int )0);
-        for (;(_index31<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index31))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index31])))) /* ?{} */);
+        signed int _index12 = ((signed int )0);
+        for (;(_index12<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index12))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index12])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index13 = ((signed int )0);
+        for (;(_index13<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index13))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index13])))) /* ?{} */);
         }
 
@@ -598,14 +296,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index32 = ((signed int )0);
-        for (;(_index32<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index32))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index32])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index33 = ((signed int )0);
-        for (;(_index33<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index33))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index33])))) /* ?{} */);
+        signed int _index14 = ((signed int )0);
+        for (;(_index14<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index14))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index14])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index15 = ((signed int )0);
+        for (;(_index15<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index15))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index15])))) /* ?{} */);
         }
 
@@ -619,19 +317,19 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index34 = ((signed int )0);
-        for (;(_index34<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index34))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index34])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index35 = ((signed int )0);
-        for (;(_index35<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index35))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index35])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R9sofstreamPvbbbPCcA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)]){
+        signed int _index16 = ((signed int )0);
+        for (;(_index16<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index16))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index16])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index17 = ((signed int )0);
+        for (;(_index17<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index17))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index17])))) /* ?{} */);
+        }
+
+    }
+}
+static inline void ___constructor__F_R9sofstreamPvbbbPCcA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)]){
     ((void)((*___dst__R9sofstream_1).__file__Pv_1=__file__Pv_1) /* ?{} */);
     ((void)((*___dst__R9sofstream_1).__sepDefault__b_1=__sepDefault__b_1) /* ?{} */);
@@ -640,19 +338,19 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index36 = ((signed int )0);
-        for (;(_index36<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index36))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index36])))=__separator__A0c_1[_index36]) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index37 = ((signed int )0);
-        for (;(_index37<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index37))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index37])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R9sofstreamPvbbbPCcA0cA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)], char __tupleSeparator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)]){
+        signed int _index18 = ((signed int )0);
+        for (;(_index18<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index18))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index18])))=__separator__A0c_1[_index18]) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index19 = ((signed int )0);
+        for (;(_index19<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index19))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index19])))) /* ?{} */);
+        }
+
+    }
+}
+static inline void ___constructor__F_R9sofstreamPvbbbPCcA0cA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)], char __tupleSeparator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)]){
     ((void)((*___dst__R9sofstream_1).__file__Pv_1=__file__Pv_1) /* ?{} */);
     ((void)((*___dst__R9sofstream_1).__sepDefault__b_1=__sepDefault__b_1) /* ?{} */);
@@ -661,14 +359,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index38 = ((signed int )0);
-        for (;(_index38<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index38))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index38])))=__separator__A0c_1[_index38]) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index39 = ((signed int )0);
-        for (;(_index39<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index39))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index39])))=__tupleSeparator__A0c_1[_index39]) /* ?{} */);
+        signed int _index20 = ((signed int )0);
+        for (;(_index20<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index20))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index20])))=__separator__A0c_1[_index20]) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index21 = ((signed int )0);
+        for (;(_index21<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index21))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index21])))=__tupleSeparator__A0c_1[_index21]) /* ?{} */);
         }
 
