This commit fixes issues #138 and #139, which were caused by missing cases in the utility functions for AST. This commit also makes GHC produce an error if a new AST node is added without the proper cases in Util.hs, preventing these kinds of mistakes again. To make this work there can be no "catch all" cases in the functions getChildren and putChildren. This inconvenience is outweighed by the fact that we are guaranteed to never forget adding a case for our new AST nodes.
This commit fixes issues #138 and #139, which were caused by missing
cases in the utility functions for AST. This commit also makes GHC
produce an error if a new AST node is added without the proper cases in
Util.hs, preventing these kinds of mistakes again. To make this work
there can be no "catch all" cases in the functions getChildren and
putChildren. This inconvenience is outweighed by the fact that we are
guaranteed to never forget adding a case for our new AST nodes.

I borrowed the test case from @kikofernandez earlier pull request (that I rejected).

parapluu/encore,parapluu/encore,parapluu/encore