anchor.diff:      ;
   
   implItem
  -    :   stateVariableDecl
  -    |   facilityDecl
  +    :   facilityDecl
       |   recursiveOperationProcedureDecl
       |   operationProcedureDecl
       |   procedureDecl
       |   recursiveProcedureDecl
       |   mathDefinitionDecl
  +    |   sharedStateRepresentationDecl
       |   typeRepresentationDecl
  -    |   conventionClause
  -    |   correspondenceClause
  -    |   moduleImplInit
  -    |   moduleImplFinal
       ;
   
   // concept performance module
  
positive.code:     :   SHARED STATE name=IDENTIFIER
          (moduleStateVariableDecl)+
          (constraintClause)?
          (typeModelInit)?
          (typeModelFinal)?
          END SEMICOLON
      ;
  
  // initialization, finalization rules
  
  typeModelInit
      :   INITIALIZATION
          (requiresClause)?
          (ensuresClause)?
      ;
  
  typeModelFinal
      :   FINALIZATION
          (requiresClause)?
          (ensuresClause)?
      ;
  
  typeRepresentationInit
      :   INITIALIZATION
          (affectsClause)*
          (facilityDecl)*
          (variableDecl)*
          (auxVariableDecl)*
  
negative.code:         END SEMICOLON
      ;
  
  //We use special rules for facility module init and final to allow requires
  //and ensures clauses (which aren't allowed in normal impl modules)...
  facilityRepresentationInit
      :   INITIALIZATION
          (affectsClause)?
          (requiresClause)?
          (ensuresClause)?
          (facilityDecl)*
  