diff --git a/NOTES b/NOTES
index c3a4cb6d7b8021fb12b95260276162e76e071750..84b8c4637aea271c54bb505aae4680208c3610f4 100644
--- a/NOTES
+++ b/NOTES
@@ -35,4 +35,4 @@ what the comments say.
 
 TODO: implement datastructure linearization func
 TODO: implement free func for parsers
-TODO: Reimplement GSequence et al for use with arena allocator. (*&%$#@ Glib doesn't allow per-datastructure allocators)
+TODO: Remove glib dependency (i.e., GQueue and GHashtable)
\ No newline at end of file
diff --git a/src/hammer.c b/src/hammer.c
index 0934a050c970d5aebe9221db56def26fbba6e3b4..904fdd0425b16180b7115681ac5fb04153d81b35 100644
--- a/src/hammer.c
+++ b/src/hammer.c
@@ -44,6 +44,7 @@ static HCachedResult *cached_result(const HParseState *state, HParseResult *resu
 
 // Really library-internal tool to perform an uncached parse, and handle any common error-handling.
 static inline HParseResult* perform_lowlevel_parse(HParseState *state, const HParser *parser) {
+  // TODO(thequux): these nested conditions are ugly. Factor this appropriately, so that it is clear which codes is executed when.
   HParseResult *tmp_res;
   if (parser) {
     HInputStream bak = state->input_stream;