code: def _isCompatible(self, other, reporter):
          
          font1 = self
          font2 = other
  
          # incompatible guidelines
          guidelines1 = set(font1.guidelines)
          guidelines2 = set(font2.guidelines)
          if len(guidelines1) != len(guidelines2):
              reporter.warning = True
              reporter.guidelineCountDifference = True
          if len(guidelines1.difference(guidelines2)) != 0:
              reporter.warning = True
              reporter.guidelinesMissingFromFont2 = list(
                  guidelines1.difference(guidelines2))
          if len(guidelines2.difference(guidelines1)) != 0:
              reporter.warning = True
              reporter.guidelinesMissingInFont1 = list(
                  guidelines2.difference(guidelines1))
          # incompatible layers
          layers1 = set(font1.layerOrder)
          layers2 = set(font2.layerOrder)
          if len(layers1) != len(layers2):
              reporter.warning = True
              reporter.layerCountDifference = True
          if len(layers1.difference(layers2)) != 0:
              reporter.warning = True
              reporter.layersMissingFromFont2 = list(layers1.difference(layers2))
          if len(layers2.difference(layers1)) != 0:
              reporter.warning = True
              reporter.layersMissingInFont1 = list(layers2.difference(layers1))
          # test layers
          for layerName in sorted(layers1.intersection(layers2)):
              layer1 = font1.getLayer(layerName)
              layer2 = font2.getLayer(layerName)
              layerCompatibility = layer1.isCompatible(layer2)[1]
              if layerCompatibility.fatal or layerCompatibility.warning:
                  if layerCompatibility.fatal:
                      reporter.fatal = True
                  if layerCompatibility.warning:
                      reporter.warning = True
                  reporter.layers.append(layerCompatibility)
docs: This is the environment implementation of
          :meth:`BaseFont.isCompatible`.
  
          Subclasses may override this method.