clang++ -Wall -Werror -I. -I../Shared -I/Users/Shared/Projects/boost_1_48_0/ -c -o "Compiler/Diagnostics.o" "Compiler/Diagnostics.cpp"
In file included from Compiler/Diagnostics.cpp:5:
./Compiler/Abstract Syntax Tree/ASTTraversal.h:221:5: error: call to member function 'Do' is ambiguous
                                Do(entryaction, *iter, exitaction);
                                ^~
./Compiler/Abstract Syntax Tree/ASTTraversal.h:386:4: note: in instantiation of function template specialization 'ASTTraverse::Traverser::Do<ASTTraverse::DumpToStream::EntryHelper, ASTTraverse::DumpToStream::ExitHelper, boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, Memory::OneWayAlloc<boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >' requested here
                        Do(entryaction, program.MetaEntities, exitaction);
                        ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:425:12: note: in instantiation of function template specialization 'ASTTraverse::Traverser::Do<ASTTraverse::DumpToStream::EntryHelper, ASTTraverse::DumpToStream::ExitHelper>' requested here
                traverse.Do(tr.Entry, program, tr.Exit);
                         ^
Compiler/Diagnostics.cpp:24:2: note: in instantiation of function template specialization 'ASTTraverse::DoTraversal<ASTTraverse::DumpToStream>' requested here
        ASTTraverse::DoTraversal(dumpStream, program);
        ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:158:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper, NodeT = boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>]
                void Do(EntryActionT& entryaction, NodeT& node, ExitActionT& exitaction, ...)
                     ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:175:14: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper, NodeT = boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>]
        void Do(EntryActionT& entryaction, NodeT& node, ExitActionT& exitaction, typename EnableIfVariant<NodeT>::type const& = EnableDummy())
             ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:228:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper] not viable: no known conversion from 'boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>' to 'AST::Statement &' for 2nd argument
                void Do(EntryActionT& entryaction, AST::Statement& statement, ExitActionT& exitaction)
                     ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:239:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper] not viable: no known conversion from 'boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>' to 'AST::Expression &' for 2nd argument
                void Do(EntryActionT& entryaction, AST::Expression& expression, ExitActionT& exitaction)
                     ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:251:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper] not viable: no known conversion from 'boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>' to 'AST::ExpressionComponent &' for 2nd argument
                void Do(EntryActionT& entryaction, AST::ExpressionComponent& component, ExitActionT& exitaction)
                     ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:266:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper] not viable: no known conversion from 'boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>' to 'AST::ExpressionFragment &' for 2nd argument
                void Do(EntryActionT& entryaction, AST::ExpressionFragment& fragment, ExitActionT& exitaction)
                     ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:277:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper] not viable: no known conversion from 'boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>' to 'AST::Assignment &' for 2nd argument
                void Do(EntryActionT& entryaction, AST::Assignment& assignment, ExitActionT& exitaction)
                     ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:285:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper] not viable: no known conversion from 'boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>' to 'AST::SimpleAssignment &' for 2nd argument
                void Do(EntryActionT& entryaction, AST::SimpleAssignment& assignment, ExitActionT& exitaction)
                     ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:296:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper] not viable: no known conversion from 'boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>' to 'AST::CodeBlock &' for 2nd argument
                void Do(EntryActionT& entryaction, AST::CodeBlock& codeblock, ExitActionT& exitaction)
                     ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:307:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper] not viable: no known conversion from 'boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, boost::shared_ptr<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::Assignment, boost::intrusive_ptr<AST::Assignment> >, boost::variant<AST::Undefined, AST::Deferred<AST::PreOperatorStatement, boost::intrusive_ptr<AST::PreOperatorStatement> >, AST::Deferred<AST::PostOperatorStatement, boost::intrusive_ptr<AST::PostOperatorStatement> >, AST::Deferred<AST::Statement, boost::intrusive_ptr<AST::Statement> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, AST::Deferred<AST::CodeBlock, boost::intrusive_ptr<AST::CodeBlock> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, AST::Deferred<AST::Function, boost::intrusive_ptr<AST::Function> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>' to 'AST::Entity &' for 2nd argument
                void Do(EntryActionT& entryaction, AST::Entity& entity, ExitActionT& exitaction)
                     ^
./Compiler/Abstract Syntax Tree/ASTTraversal.h:320:8: note: candidate function [with EntryActionT = ASTTraverse::DumpToStream::EntryHelper, ExitActionT = ASTTraverse::DumpToStream::ExitHelper] not viable: no known conversion from 'boost::variant<AST::Undefined, AST::Deferred<AST::Structure, boost::intrusive_ptr<AST::Structure> >, AST::Deferred<boost::variant<AST::Undefined, boost::variant<AST::Undefined, AST::Deferred<AST::Entity, boost::intrusive_ptr<AST::Entity> >, AST::Deferred<AST::PostfixEntity, boost::intrusive_ptr<AST::PostfixEntity> >, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant