anchor.diff:    ///
     ///     result = ((_) => _.addAll(result), _.add(2), _)([])
     ///
  -  MetaLet _simplifyAssignment(Identifier left,
  -      {String op, bool isDeclaration = false}) {
  +  MetaLet? _simplifyAssignment(Identifier left,
  +      {String? op, bool isDeclaration = false}) {
       // See if the result value is a let* temporary variable.
       var result = body.last;
       if (result is MetaLetVariable && variables.containsKey(result)) {
  
positive.code: 
    @override
    T accept<T>(NodeVisitor<T> visitor) {
      // TODO(jmesserly): we special case vistors from js_ast.Template, because it
      // doesn't know about MetaLet. Should we integrate directly?
      NodeVisitor v = visitor;
      if (v is InstantiatorGeneratorVisitor) {
        return _templateVisitMetaLet(v) as T;
  
negative.code:   }
  
    Expression toExpression() {
      if (_expression != null) return _expression!;
      var block = toReturn();
      var s = block.statements;
      if (s.length == 1 && s.first is Return) {
        return (_expression = (s.first as Return).value)!;
      }
      // Wrap it in an immediately called function to get in expression context.
      return _expression = _toInvokedFunction(block);
  