anchor.diff:  KeyDefinition ->
       local_key openb KeyFieldList closeb : make_key_definition('$1', '$3').
   
  -KeyFieldList -> KeyField comma KeyFieldList : make_key_field_list('$1', '$3').
  -KeyFieldList -> KeyField : make_key_field_list('$1', {key_field_list, []}).
  +KeyFieldList -> KeyField comma KeyFieldList : make_list('$3', '$1').
  +KeyFieldList -> KeyField : make_list({list, []}, '$1').
   
   KeyField -> Word : '$1'.
  +KeyField -> modfun openb KeyFieldArgList closeb : {modfun, '$3'}.
  +
  +KeyFieldArgList ->
  +    KeyFieldArg comma KeyFieldArgList : make_list('$3', '$1').
  +KeyFieldArgList ->
  +    KeyFieldArg : make_list({list, []}, '$1').
  +
  +KeyFieldArg -> Word : '$1'.
  +KeyFieldArg -> atom openb Word closeb : make_atom('$3').
   
   Erlang code.
   
  
positive.code: DataType
  KeyFieldList
  KeyField
  .
  
  Terminals
  
negative.code: make_table_element_list(A, B) ->
      {table_element_list, [A, B]}.
  
  extract_key_field_list({list, []}, Extracted) ->
      lists:reverse(Extracted);
  extract_key_field_list({list, [Field | Rest]}, Extracted) ->
      [#param_v1{name = Field} |
       extract_key_field_list({list, Rest}, Extracted)].
  
  make_table_definition({word, BucketName}, Contents) ->
      PartitionKey = find_partition_key(Contents),
  