Add comment to justify this madness
diff --git a/parser.go b/parser.go
index 5751632..0fe0457 100644
--- a/parser.go
+++ b/parser.go
@@ -312,6 +312,10 @@
 		}
 		if follow.typ == tokenRightBracket {
 			p.getToken()
+			// An array of TomlTrees is actually an array of inline
+			// tables, which is a shorthand for a table array. If the
+			// array was not converted from []interface{} to []*TomlTree,
+			// the two notations would not be equivalent.
 			if arrayType == reflect.TypeOf(newTomlTree()) {
 				tomlArray := make([]*TomlTree, len(array))
 				for i, v := range array {