docs: def extension(names):
      """Makes a function to be an extension."""
      for name in names:
          if not NAME_PATTERN.match(name):
              raise ValueError('invalid extension name: %s' % name)
      def decorator(f, names=names):
          return Extension(f, names=names)
      return decorator