code: def remove_pointer(type_):
      
      nake_type = remove_alias(type_)
      if not is_pointer(nake_type):
          return type_
      elif isinstance(nake_type, cpptypes.volatile_t) and \
              isinstance(nake_type.base, cpptypes.pointer_t):
          return cpptypes.volatile_t(nake_type.base.base)
      elif isinstance(nake_type, cpptypes.const_t) and \
              isinstance(nake_type.base, cpptypes.pointer_t):
          return cpptypes.const_t(nake_type.base.base)
      elif isinstance(nake_type, cpptypes.volatile_t) \
              and isinstance(nake_type.base, cpptypes.const_t) \
              and isinstance(nake_type.base.base, cpptypes.pointer_t):
          return (
              cpptypes.volatile_t(cpptypes.const_t(nake_type.base.base.base))
          )
  
      return nake_type.base
docs: removes pointer from the type definition
  
      If type is not pointer type, it will be returned as is.