docs: def writeElement(self, data):
          """
          Encodes C{data} to AMF. If the data is not able to be matched to an AMF
          type, then L{pyamf.EncodeError} will be raised.
          """
          key = type(data)
          func = None
  
          try:
              func = self._func_cache[key]
          except KeyError:
              func = self.getTypeFunc(data)
  
              if func is None:
                  raise pyamf.EncodeError('Unable to encode %r (type %r)' % (
                      data, key))
  
              self._func_cache[key] = func
  
          func(data)