code: def generate_basic_type_docs(fields, existing_types):
      raml_built_in_types = {
          "any": {
              "parent": None,
          },
          "time-only": {
              "parent": "any",
          },
          "datetime": {
              "parent": "any",
              "pale_children": ["timestamp"],
          },
          "datetime-only": {
              "parent": "any",
          },
          "date-only": {
              "parent": "any",
              "pale_children": ["date"],
          },
          "number": {
              "parent": "any",
          },
          "boolean": {
              "parent": "any",
              "pale_children": ["boolean"]
          },
          "string": {
              "parent": "any",
              "pale_children": ["url", "string", "uri"],
          },
          "null": {
              "parent": "any",
          },
          "file": {
              "parent": "any",
          },
          "array": {
              "parent": "any",
              "pale_children": ["list"],
          },
          "object": {
              "parent": "any",
          },
          "union": {
              "parent": "any",
          },
          "XSD Schema": {
              "parent": "any",
          },
          "JSON Schema": {
              "parent": "any",
          },
          "integer": {
              "parent": "number",
              "pale_children": ["integer"],
          },
      }
      basic_types = {}
      for field in fields:
          if hasattr(field, "value_type"):
              type_name = field.value_type.replace(" ", "_")
              if type_name not in raml_built_in_types \
                  and type_name not in basic_types \
                  and type_name not in existing_types:
                  basic_types[type_name] = {}
                  if hasattr(field, "__doc__"):
                      modified_description = clean_description(field.__doc__)
                      basic_types[type_name]["description"] = modified_description
                  for raml_type in raml_built_in_types:
                      if "pale_children" in raml_built_in_types[raml_type]:
                          if type_name in raml_built_in_types[raml_type]["pale_children"]:
                              basic_types[type_name]["type"] = raml_type
                              break
                      else:
                          if hasattr(field, "is_list") and field.is_list:
                              basic_types[type_name]["type"] = "array"
                              if hasattr(field, "list_item_type") and field.list_item_type != None:
                                  basic_types[type_name]["items"] = field.list_item_type
                              else:
                                  basic_types[type_name]["items"] = "base"
                          else:
                              pale_parent_class = field.__mro__[1]
                              if pale_parent_class.__name__ == "object":
                                  basic_types[type_name]["type"] = "object"
                              else:
                                  basic_types[type_name]["type"] = pale_parent_class.value_type
      ordered_basic_types =  OrderedDict(sorted(basic_types.items(), key=lambda t: t[0]))
      basic_docs = generate_type_docs(ordered_basic_types)
      return (basic_docs, basic_types)