Add future work note about unions in token type, and add
regexes.txt file for historical tracking.
diff --git a/regexes.txt b/regexes.txt
new file mode 100644
index 0000000..4b4a208
--- /dev/null
+++ b/regexes.txt
@@ -0,0 +1,48 @@
+
+/* A */  =>  // A
+
+	%s/\/\* \(.*\) \*\//\/\/ \1/gc
+
+A; [// B]  =>  A [// B]
+
+	%s/;[ \t]*\( \\/ .*\)\?$/\1/gc
+
+type [*]name  =>  name [*]type
+
+	%s/\(\%(\%(const\|unsigned\) \)\?\%(yaml_[a-z_]*_t\|\<int\>\|\<char\>\|\<size_t\>\)\) \(\**\)\([a-z_]\+\)/\3 \2\1/gc
+
+if (A) return B  =>  if A { return B }
+
+	%s/if (\(.*\)) return \([^ ]\+\)$/if \1 { return \2 }/gc
+
+if (A) {  =>  if A {
+
+	%s/if (\(.*\)) {$/if \1 {/gc
+
+if (A)\n{\n  =>  if A {\n
+
+	%s/\([ \t\/]*\)\(else\|if\)\( \)(\([^{]\+\))\n[ \t\/]*{$/\1\2\3\4 {/gc
+
+if (A)\nB  =>  if A {\nB\n}
+
+	%s/^\([ \t]*\/\/\)\?\( *\)if (\(.*\))\n\(.*\)/\1\2if \3 {^M\4^M\1\2}/gc
+
+if (A\nB) {  =>  if A\nB {
+
+	%s/\(if\|for\) (\(\_[^{]\+\)) {/\1 \2 {/gc
+
+}\nelse\n{  =>  } else {
+
+	%s/^\([ \t\/]*\)}\([ \t\/\n]*\)\n\1else\(\n\1\| \){/\1} else {/gc
+
+}\nelse if  =>  } else if
+
+	%s/^\([ \t\/]*\)}\([ \t\/\n]*\)\n\1else if/\1} else if/gc
+
+//static int\nyaml_*)\n//{  =>  //func yaml_*) bool {
+
+	%s/^\/\/\(static int\|YAML_DECLARE(int)\)\n\/\/\(yaml_\([^{]\+\n\?\)\+)\)\n\/\/{/\/\/func \2 bool {/gc
+
+IS_X_AT  =>  is_x
+
+	%s/IS_BLANKZ_AT(parser.buffer, \([0-9]\))/is_blankz(parser.buffer, parser.buffer_pos+\1)/
diff --git a/yaml_h.go b/yaml_h.go
index 1e95b96..eb8931c 100644
--- a/yaml_h.go
+++ b/yaml_h.go
@@ -196,6 +196,10 @@
 
 	// The token data.
 
+	// [Go] These structs should all be flattened onto the outer
+	// struct, as many of them are naturally shared among the various
+	// token types. This will reduce the impact of the lack of a union.
+
 	// The stream start (for yaml_STREAM_START_TOKEN).
 	stream_start struct {
 		encoding yaml_encoding_t // The stream encoding.