docs: def create_typedef(self, typedef_name, unused=None, with_defaults=True):
          """returns string, that contains valid C++ code, that defines typedef
          to function type
  
          :param name: the desired name of typedef
          """
  
          return free_function_type_t.TYPEDEF_NAME_TEMPLATE % {
              'typedef_name': typedef_name,
              'return_type': self.return_type.build_decl_string(with_defaults),
              'arguments': ','.join(
                  [_f(x, with_defaults) for x in self.arguments_types])}