Index: doc/LaTeXmacros/common.tex
===================================================================
--- doc/LaTeXmacros/common.tex	(revision 2873b7372df261ae1d4d627a50f625463f5d4767)
+++ doc/LaTeXmacros/common.tex	(revision 6a0d1b1e8d0e8397f8de83a000ffac69f486b89d)
@@ -11,6 +11,6 @@
 %% Created On       : Sat Apr  9 10:06:17 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Mon May 15 18:03:29 2017
-%% Update Count     : 302
+%% Last Modified On : Sun Jun 18 20:32:32 2017
+%% Update Count     : 319
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -36,5 +36,6 @@
 % Names used in the document.
 
-\newcommand{\CFA}{\textrm{C}\raisebox{\depth}{\rotatebox{180}{\textsf{A}}}\xspace} % Cforall symbolic name
+\newcommand{\CFAIcon}{\textrm{C}\raisebox{\depth}{\rotatebox{180}{\textsf{A}}}\xspace} % Cforall symbolic name
+\newcommand{\CFA}{\protect\CFAIcon} % safe for section/caption
 \newcommand{\CFL}{\textrm{Cforall}\xspace} % Cforall symbolic name
 \newcommand{\Celeven}{\textrm{C11}\xspace} % C11 symbolic name
@@ -241,8 +242,7 @@
 belowskip=3pt,
 % replace/adjust listing characters that look bad in sanserif
-literate={-}{\makebox[1ex][c]{\raisebox{0.4ex}{\rule{0.8ex}{0.075ex}}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1
+literate={-}{\makebox[1ex][c]{\raisebox{0.4ex}{\rule{0.8ex}{0.1ex}}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1
 	{~}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}}1 {`}{\ttfamily\upshape\hspace*{-0.1ex}`}1
-	{__}{\_\,\_}2 {<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2 {->}{\makebox[1ex][c]{\raisebox{0.4ex}{\rule{0.8ex}{0.075ex}}}\kern-0.2ex\textgreater}2
-	{___}{\_\,\_\,\_}3,
+	{<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2 {->}{\makebox[1ex][c]{\raisebox{0.4ex}{\rule{0.8ex}{0.075ex}}}\kern-0.2ex\textgreater}2,
 moredelim=**[is][\color{red}]{®}{®},					% red highlighting ®...® (registered trademark symbol) emacs: C-q M-.
 moredelim=**[is][\color{blue}]{ß}{ß},					% blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision 2873b7372df261ae1d4d627a50f625463f5d4767)
+++ src/Parser/ParseNode.h	(revision 6a0d1b1e8d0e8397f8de83a000ffac69f486b89d)
@@ -415,4 +415,6 @@
 				result->location = cur->location;
 				* out++ = result;
+			} else {
+				assertf(false, "buildList unknown type");
 			} // if
 		} catch( SemanticError &e ) {
Index: src/Parser/StatementNode.cc
===================================================================
--- src/Parser/StatementNode.cc	(revision 2873b7372df261ae1d4d627a50f625463f5d4767)
+++ src/Parser/StatementNode.cc	(revision 6a0d1b1e8d0e8397f8de83a000ffac69f486b89d)
@@ -175,6 +175,6 @@
 
 Statement *build_try( StatementNode *try_stmt, StatementNode *catch_stmt, StatementNode *finally_stmt ) {
-	std::list< Statement * > branches;
-	buildMoveList< Statement, StatementNode >( catch_stmt, branches );
+	std::list< CatchStmt * > branches;
+	buildMoveList< CatchStmt, StatementNode >( catch_stmt, branches );
 	CompoundStmt *tryBlock = safe_dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >(try_stmt));
 	FinallyStmt *finallyBlock = dynamic_cast< FinallyStmt * >(maybeMoveBuild< Statement >(finally_stmt) );
Index: src/SynTree/Statement.cc
===================================================================
--- src/SynTree/Statement.cc	(revision 2873b7372df261ae1d4d627a50f625463f5d4767)
+++ src/SynTree/Statement.cc	(revision 6a0d1b1e8d0e8397f8de83a000ffac69f486b89d)
@@ -313,5 +313,5 @@
 }
 
-TryStmt::TryStmt( std::list<Label> labels, CompoundStmt *tryBlock, std::list<Statement *> &_handlers, FinallyStmt *_finallyBlock ) :
+TryStmt::TryStmt( std::list<Label> labels, CompoundStmt *tryBlock, std::list<CatchStmt *> &_handlers, FinallyStmt *_finallyBlock ) :
 	Statement( labels ), block( tryBlock ),  handlers( _handlers ), finallyBlock( _finallyBlock ) {
 }
@@ -334,5 +334,5 @@
 	// handlers
 	os << string( indent + 2, ' ' ) << "and handlers: " << endl;
-	for ( std::list<Statement *>::const_iterator i = handlers.begin(); i != handlers.end(); i++)
+	for ( std::list<CatchStmt *>::const_iterator i = handlers.begin(); i != handlers.end(); i++)
 		(*i )->print( os, indent + 4 );
 
Index: src/SynTree/Statement.h
===================================================================
--- src/SynTree/Statement.h	(revision 2873b7372df261ae1d4d627a50f625463f5d4767)
+++ src/SynTree/Statement.h	(revision 6a0d1b1e8d0e8397f8de83a000ffac69f486b89d)
@@ -315,5 +315,5 @@
 class TryStmt : public Statement {
   public:
-	TryStmt( std::list<Label> labels, CompoundStmt *tryBlock, std::list<Statement *> &handlers, FinallyStmt *finallyBlock = 0 );
+	TryStmt( std::list<Label> labels, CompoundStmt *tryBlock, std::list<CatchStmt *> &handlers, FinallyStmt *finallyBlock = 0 );
 	TryStmt( const TryStmt &other );
 	virtual ~TryStmt();
@@ -321,5 +321,5 @@
 	CompoundStmt *get_block() const { return block; }
 	void set_block( CompoundStmt *newValue ) { block = newValue; }
-	std::list<Statement *>& get_catchers() { return handlers; }
+	std::list<CatchStmt *>& get_catchers() { return handlers; }
 
 	FinallyStmt *get_finally() const { return finallyBlock; }
@@ -333,5 +333,5 @@
   private:
 	CompoundStmt *block;
-	std::list<Statement *> handlers;
+	std::list<CatchStmt *> handlers;
 	FinallyStmt *finallyBlock;
 };
