docs: def validate(self, value):
          """
          Accepts: str, unicode
          Returns: unicode
          """
          val = value
          if isinstance(val, str):
              #FIXME: unsafe decoding
              val = unicode(value)
          val = super(String, self).validate(val)
          if not isinstance(val, unicode):
              raise ValueError("Not a string: %r" % (value, ))
          return val