anchor.diff:  contextEntry : dataEntry | srvEntry | varEntry | fiEntry
   			| entType '(' contextEntry ')' ;
   
  +entType : 'in' | 'out' | 'inout' | 'db' ;
  +
   sigFidelity : 'sFi' '(' fiName ',' opSignature+ ')' ;
   
  -morphFidelity : 'mFi' '(' fiName ',' srvRequest+ ')'
  -			| 'mFi' '(' fiName ',' srvMorpher ',' srvRequest+ ')' ;
  +morphFidelity : 'mFi' '(' fiName (',' srvRequest)+ ')'
  +			| 'mFi' '(' fiName ',' srvMorpher (',' srvRequest)+ ')' ;
   			
   srvMorpher: morpherLambdaExpression ;
   
  
positive.code: 
  /* <PROVIDER-RULES> */
  srvSignature : prvSignature | opSignature | 'sig' '(' srvSignature ',' signatureOp ')' ;
  prvSignature : 'sig' '(' ( name ',' )? prvSpec ')' ;
  opSignature  : 'sig' '(' ( name ',' )? opSpec ',' prvSpec ')' ;
  
  prvSpec : (javaType | prvInstance | 'type' '(' srvTypeName ')' (',' 'types' '(' javaType* ')' )? (',' (srvTag | prvTag))? (',' prvDeployment)? ) ;
  opSpec  : selector signatureOp ( ',' dataContext )? (',' srvResult)? (',' 'inConn' '(' mapEntry*')')? (',' 'outConn' '(' mapEntry* ')' )? ;
  
  srvType options { backtrack = true; } : classType | interfaceType ;
  
  signatureOp : ('op' '(' selector (',' srvArg*)? ')' | 'op' '(' opSignature ')' ) ;
  access : 'Access.PUSH' | 'Access.PULL' ;
  provisionable : 'Provision.YES' | 'Provision.NO' ;
  prvTag : 'prvName' '(' providerName ')' ;
  srvTag : 'srvName' '(' serviceName (',' 'locators'(locatorName*))? (',' groupName*)? ')' ;
  srvResult : 'result' '(' pathName? (',' inputPaths)? (',' outputPaths)? (',' dataContext)? ')' ;
  prvDeployment : 'deploy' '(' 'implementation' '(' providerClassName ')' 
                 'classpath' '(' jarName* ')' 
  
negative.code: 
  contextModel : 'contextModelType' '('(name',' )? contextEntry* (',' 'response' '('pathName*')' (',' srvDependency)? )? ')';
  		
  parTypes : 'types' '('srvType*')' ;
  parArgs : 'args' '('object*')' ;
  srvDependency : 'dependsOn' '(' 'ent' '('pathName',' 'paths' '('pathName*')'* ')' ;
  
  