anchor.diff:  			docstring[field]
   		)
   	)
  -	{ container.Add(tm); }
  +)
  +{
  +	if (null != nameSplice) {
  +		tm = new SpliceTypeMember(tm, nameSplice);
  +	}
  +	container.Add(tm);
  +}
   ;
   	
   declaration_initializer returns [Expression e]
  
positive.code: 				p.ExplicitInfo = emi;
  				AddAttributes(p.Attributes);
  				parameters = p.Parameters;
  			}
  			((LBRACK|LPAREN) parameter_declaration_list[parameters] (RBRACK|RPAREN))?
  			(AS tr=type_reference)?
  			{							
  				p.Type = tr;
  				p.Modifiers = _modifiers;
  				if (null != nameSplice)
  				{
  					tm = new SpliceTypeMember(p, nameSplice);
  				}
  				else 
  				{
  					tm = p;
  				}
  			}		
  			begin_with_doc[p]
  				(property_accessor[p])+
  			end[p]
  		)
  	)
  	{ container.Add(tm); }
  	|
  	(
  		(id2:ID | begin2:SPLICE_BEGIN nameSplice=atom)
  
negative.code: 	
  protected
  field_or_property [TypeMemberCollection container]
  {
  	IToken id = null;
  	TypeMember tm = null;
  	TypeReference tr = null;
  	Property p = null;
  	Field field = null;
  	ExplicitMemberInfo emi = null;
  	Expression initializer = null;
  	ParameterDeclarationCollection parameters = null;
  	Expression nameSplice = null;
  }:
  (	
  	(property_header)=>(
  		(emi=explicit_member_info)?
  		(id1:ID {id=id1;}
  