 
   # The array literal.
   Array: [
-    o "[ ArgList ]",                            -> new ArrayNode $2
-    o "[ ArgList , ]",                          -> new ArrayNode $2
+    o "[ ArgList OptComma ]",                   -> new ArrayNode $2
   ]
 
   # The **ArgList** is both the list of objects passed into a function call,


  # An **AssignList** within a block indentation.
  IndentedAssignList: [
    o "INDENT AssignList OUTDENT",              -> $2
    o "INDENT AssignList , OUTDENT",            -> $2
  ]

  # Class definitions have optional bodies of prototype property assignments,

    o "=>",                                     -> 'boundfunc'
  ]

  # An optional, trailing comma.
  OptComma: [
    o ''
    o ','
  ]

  # The list of parameters that a function accepts can be of any length.
  ParamList: [
    o "",                                       -> []
