anchor.diff:  				p.ExplicitInfo = emi;
   				AddAttributes(p.Attributes);
   				parameters = p.Parameters;
  +				tm = p;
   			}
   			((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)
  
positive.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;}
  
negative.code: 			docstring[field]
  		)
  	)
  )
  {
  	if (null != nameSplice) {
  		tm = new SpliceTypeMember(tm, nameSplice);
  	}
  	container.Add(tm);
  }
  ;
  	
  declaration_initializer returns [Expression e]
  