docs: def function_type(self):
          """returns function type. See :class:`type_t` hierarchy"""
          if self.has_static:
              return cpptypes.free_function_type_t(
                  return_type=self.return_type,
                  arguments_types=[arg.decl_type for arg in self.arguments])
  
          return cpptypes.member_function_type_t(
              class_inst=self.parent,
              return_type=self.return_type,
              arguments_types=[arg.decl_type for arg in self.arguments],
              has_const=self.has_const)