anchor.diff:                          identifier_node() | expression_node(),
                           boolean()) -> member_expression_node().
   member_expression(Object, Property, Computed) ->
  -    %?spec([{Object, expression}, {Property, [identifier, expression]}, {Computed, boolean}]),
       update_record(expression(), [{"type", <<"MemberExpression">>},
                                    {"object", Object},
                                    {"property", Property},
  
positive.code:                         expression_node(),
                          boolean()) -> update_expression_node().
  update_expression(Operator, Argument, Prefix) when ?IS_UPDATE_OPERATOR(Operator) ->
      %?spec([{Operator, anything},
      %       {Argument, expression},
      %       {Prefix, boolean}]),
      update_record(expression(), [{"type", <<"UpdateExpression">>},
                                   {"operator", Operator},
                                   {"argument", Argument},
  
negative.code: -spec switch_case(expression_node(),
                    [statement_node()]) -> switch_case_statement_node().
  switch_case(Test, Consequent) ->
      update_record(statement(), [{"type", <<"SwitchCase">>},
                                  {"test", Test},
                                  {"consequent", Consequent}]).
  