package clangml

  1. Overview
  2. Docs
include sig ... end
val get_build_session_timestamp : unit -> int
type cxvirtualfileoverlay
val virtual_file_overlay_create : int -> cxvirtualfileoverlay
type cxerrorcode =
  1. | Failure
  2. | Crashed
  3. | InvalidArguments
  4. | ASTReadError
type cxerrorcode__arity = [
  1. | `Zero
]
and cxerrorcode__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cxerrorcode__kinds = [
  1. | `Constr
]
and cxerrorcode__gadt = unit
type Refl.refl +=
  1. | Refl_cxerrorcode : cxerrorcode Refl.refl
val virtual_file_overlay_add_file_mapping : cxvirtualfileoverlay -> virtual_path:string -> real_path:string -> (unit, cxerrorcode) Stdcompat.result
val virtual_file_overlay_set_case_sensitivity : cxvirtualfileoverlay -> int -> (unit, cxerrorcode) Stdcompat.result
val virtual_file_overlay_write_to_buffer : cxvirtualfileoverlay -> int -> (string, cxerrorcode) Stdcompat.result
type cxmodulemapdescriptor
val module_map_descriptor_create : int -> cxmodulemapdescriptor
val module_map_descriptor_set_framework_module_name : cxmodulemapdescriptor -> string -> (unit, cxerrorcode) Stdcompat.result
val module_map_descriptor_set_umbrella_header : cxmodulemapdescriptor -> string -> (unit, cxerrorcode) Stdcompat.result
val module_map_descriptor_write_to_buffer : cxmodulemapdescriptor -> int -> (string, cxerrorcode) Stdcompat.result
type cxindex
val create_index : exclude_declarations_from_pch:bool -> display_diagnostics:bool -> cxindex
module Cxglobaloptflags : sig ... end
val cxindex_set_global_options : cxindex -> Cxglobaloptflags.t -> unit
val cxindex_get_global_options : cxindex -> Cxglobaloptflags.t
val cxindex_set_invocation_emission_path_option : cxindex -> string -> unit
type cxfile
val get_file_name : cxfile -> string
val get_file_time : cxfile -> int
type cxfileuniqueid = int * int * int
val get_file_unique_id : cxfile -> cxfileuniqueid option
type cxtranslationunit
val is_file_multiple_include_guarded : cxtranslationunit -> cxfile -> bool
val get_file : cxtranslationunit -> string -> cxfile
val get_file_contents : cxtranslationunit -> cxfile -> string option
val file_is_equal : cxfile -> cxfile -> bool
val file_try_get_real_path_name : cxfile -> string
type cxsourcelocation
val get_null_location : unit -> cxsourcelocation
val equal_locations : cxsourcelocation -> cxsourcelocation -> bool
val get_location : cxtranslationunit -> cxfile -> line:int -> column:int -> cxsourcelocation
val get_location_for_offset : cxtranslationunit -> cxfile -> int -> cxsourcelocation
val location_is_in_system_header : cxsourcelocation -> bool
val location_is_from_main_file : cxsourcelocation -> bool
type cxsourcerange
val get_null_range : unit -> cxsourcerange
val equal_ranges : cxsourcerange -> cxsourcerange -> bool
val range_is_null : cxsourcerange -> bool
val get_expansion_location : cxsourcelocation -> cxfile * int * int * int
val get_presumed_location : cxsourcelocation -> string * int * int
val get_instantiation_location : cxsourcelocation -> cxfile * int * int * int
val get_spelling_location : cxsourcelocation -> cxfile * int * int * int
val get_file_location : cxsourcelocation -> cxfile * int * int * int
val get_range_start : cxsourcerange -> cxsourcelocation
val get_range_end : cxsourcerange -> cxsourcelocation
val get_skipped_ranges : cxtranslationunit -> cxfile -> cxsourcerange array
val get_all_skipped_ranges : cxtranslationunit -> cxsourcerange array
type cxdiagnosticset
val get_num_diagnostics_in_set : cxdiagnosticset -> int
type cxdiagnostic
val get_diagnostic_in_set : cxdiagnosticset -> int -> cxdiagnostic
type cxloaddiag_error =
  1. | Unknown
  2. | CannotLoad
  3. | InvalidFile
type cxloaddiag_error__arity = [
  1. | `Zero
]
and cxloaddiag_error__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref ]
]
and cxloaddiag_error__kinds = [
  1. | `Constr
]
and cxloaddiag_error__gadt = unit
type Refl.refl +=
  1. | Refl_cxloaddiag_error : cxloaddiag_error Refl.refl
val load_diagnostics : string -> (cxdiagnosticset, cxloaddiag_error * string) Stdcompat.result
val get_child_diagnostics : cxdiagnostic -> cxdiagnosticset
val get_num_diagnostics : cxtranslationunit -> int
val get_diagnostic : cxtranslationunit -> int -> cxdiagnostic
val get_diagnostic_set_from_tu : cxtranslationunit -> cxdiagnosticset
module Cxdiagnosticdisplayoptions : sig ... end
val format_diagnostic : cxdiagnostic -> Cxdiagnosticdisplayoptions.t -> string
val default_diagnostic_display_options : unit -> Cxdiagnosticdisplayoptions.t
type cxdiagnosticseverity =
  1. | Ignored
  2. | Note
  3. | Warning
  4. | Error
  5. | Fatal
type cxdiagnosticseverity__arity = [
  1. | `Zero
]
and cxdiagnosticseverity__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cxdiagnosticseverity__kinds = [
  1. | `Constr
]
and cxdiagnosticseverity__gadt = unit
type Refl.refl +=
  1. | Refl_cxdiagnosticseverity : cxdiagnosticseverity Refl.refl
val get_diagnostic_severity : cxdiagnostic -> cxdiagnosticseverity
val get_diagnostic_location : cxdiagnostic -> cxsourcelocation
val get_diagnostic_spelling : cxdiagnostic -> string
val get_diagnostic_option : cxdiagnostic -> string * string
val get_diagnostic_category : cxdiagnostic -> int
val get_diagnostic_category_text : cxdiagnostic -> string
val get_diagnostic_num_ranges : cxdiagnostic -> int
val get_diagnostic_range : cxdiagnostic -> int -> cxsourcerange
val get_diagnostic_num_fix_its : cxdiagnostic -> int
val get_diagnostic_fix_it : cxdiagnostic -> int -> cxsourcerange -> string * cxsourcerange
val get_translation_unit_spelling : cxtranslationunit -> string
type cxunsavedfile = {
  1. filename : string;
  2. contents : string;
}
type cxunsavedfile__arity = [
  1. | `Zero
]
and cxunsavedfile__structure = [
  1. | `Name of [ `Record of [ `Mono of [ `Builtin of [ `String ] ] ] * ([ `Mono of [ `Builtin of [ `String ] ] ] * unit) ]
]
and cxunsavedfile__kinds = [
  1. | `Record
  2. | `String
]
and cxunsavedfile__gadt = unit
type Refl.refl +=
  1. | Refl_cxunsavedfile : cxunsavedfile Refl.refl
val create_translation_unit_from_source_file : cxindex -> string -> string array -> cxunsavedfile array -> cxtranslationunit
val create_translation_unit : cxindex -> string -> cxtranslationunit
val create_translation_unit2 : cxindex -> string -> (cxtranslationunit, cxerrorcode) Stdcompat.result
module Cxtranslationunit_flags : sig ... end
val default_editing_translation_unit_options : unit -> Cxtranslationunit_flags.t
val parse_translation_unit : cxindex -> string -> string array -> cxunsavedfile array -> Cxtranslationunit_flags.t -> cxtranslationunit option
val parse_translation_unit2 : cxindex -> string -> string array -> cxunsavedfile array -> Cxtranslationunit_flags.t -> (cxtranslationunit, cxerrorcode) Stdcompat.result
val parse_translation_unit2_full_argv : cxindex -> string -> string array -> cxunsavedfile array -> Cxtranslationunit_flags.t -> (cxtranslationunit, cxerrorcode) Stdcompat.result
val default_save_options : cxtranslationunit -> int
type cxsaveerror =
  1. | Unknown
  2. | TranslationErrors
  3. | InvalidTU
type cxsaveerror__arity = [
  1. | `Zero
]
and cxsaveerror__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref ]
]
and cxsaveerror__kinds = [
  1. | `Constr
]
and cxsaveerror__gadt = unit
type Refl.refl +=
  1. | Refl_cxsaveerror : cxsaveerror Refl.refl
module Cxsavetranslationunit_flags : sig ... end
val save_translation_unit : cxtranslationunit -> string -> Cxsavetranslationunit_flags.t -> (unit, cxsaveerror) Stdcompat.result
val suspend_translation_unit : cxtranslationunit -> int
module Cxreparse_flags : sig ... end
val default_reparse_options : cxtranslationunit -> Cxreparse_flags.t
val reparse_translation_unit : cxtranslationunit -> cxunsavedfile array -> Cxreparse_flags.t -> (unit, cxerrorcode) Stdcompat.result
type cxturesourceusagekind =
  1. | AST
  2. | Identifiers
  3. | Selectors
  4. | GlobalCompletionResults
  5. | SourceManagerContentCache
  6. | AST_SideTables
  7. | SourceManager_Membuffer_Malloc
  8. | SourceManager_Membuffer_MMap
  9. | ExternalASTSource_Membuffer_Malloc
  10. | ExternalASTSource_Membuffer_MMap
  11. | Preprocessor
  12. | PreprocessingRecord
  13. | SourceManager_DataStructures
  14. | Preprocessor_HeaderSearch
type cxturesourceusagekind__arity = [
  1. | `Zero
]
and cxturesourceusagekind__structure = [
  1. | `Name of [ `Constr of ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) ]
]
and cxturesourceusagekind__kinds = [
  1. | `Constr
]
and cxturesourceusagekind__gadt = unit
type Refl.refl +=
  1. | Refl_cxturesourceusagekind : cxturesourceusagekind Refl.refl
val get_turesource_usage_name : cxturesourceusagekind -> string
type cxturesourceusage
val get_cxturesource_usage : cxtranslationunit -> cxturesourceusage
type cxtargetinfo
val get_translation_unit_target_info : cxtranslationunit -> cxtargetinfo
val target_info_get_triple : cxtargetinfo -> string
val target_info_get_pointer_width : cxtargetinfo -> int
type cxcursorkind =
  1. | UnexposedDecl
  2. | StructDecl
  3. | UnionDecl
  4. | ClassDecl
  5. | EnumDecl
  6. | FieldDecl
  7. | EnumConstantDecl
  8. | FunctionDecl
  9. | VarDecl
  10. | ParmDecl
  11. | ObjCInterfaceDecl
  12. | ObjCCategoryDecl
  13. | ObjCProtocolDecl
  14. | ObjCPropertyDecl
  15. | ObjCIvarDecl
  16. | ObjCInstanceMethodDecl
  17. | ObjCClassMethodDecl
  18. | ObjCImplementationDecl
  19. | ObjCCategoryImplDecl
  20. | TypedefDecl
  21. | CXXMethod
  22. | Namespace
  23. | LinkageSpec
  24. | Constructor
  25. | Destructor
  26. | ConversionFunction
  27. | TemplateTypeParameter
  28. | NonTypeTemplateParameter
  29. | TemplateTemplateParameter
  30. | FunctionTemplate
  31. | ClassTemplate
  32. | ClassTemplatePartialSpecialization
  33. | NamespaceAlias
  34. | UsingDirective
  35. | UsingDeclaration
  36. | TypeAliasDecl
  37. | ObjCSynthesizeDecl
  38. | ObjCDynamicDecl
  39. | CXXAccessSpecifier
  40. | ObjCSuperClassRef
  41. | ObjCProtocolRef
  42. | ObjCClassRef
  43. | TypeRef
  44. | CXXBaseSpecifier
  45. | TemplateRef
  46. | NamespaceRef
  47. | MemberRef
  48. | LabelRef
  49. | OverloadedDeclRef
  50. | VariableRef
  51. | InvalidFile
  52. | NoDeclFound
  53. | NotImplemented
  54. | InvalidCode
  55. | UnexposedExpr
  56. | DeclRefExpr
  57. | MemberRefExpr
  58. | CallExpr
  59. | ObjCMessageExpr
  60. | BlockExpr
  61. | IntegerLiteral
  62. | FloatingLiteral
  63. | ImaginaryLiteral
  64. | StringLiteral
  65. | CharacterLiteral
  66. | ParenExpr
  67. | UnaryOperator
  68. | ArraySubscriptExpr
  69. | BinaryOperator
  70. | CompoundAssignOperator
  71. | ConditionalOperator
  72. | CStyleCastExpr
  73. | CompoundLiteralExpr
  74. | InitListExpr
  75. | AddrLabelExpr
  76. | StmtExpr
  77. | GenericSelectionExpr
  78. | GNUNullExpr
  79. | CXXStaticCastExpr
  80. | CXXDynamicCastExpr
  81. | CXXReinterpretCastExpr
  82. | CXXConstCastExpr
  83. | CXXFunctionalCastExpr
  84. | CXXTypeidExpr
  85. | CXXBoolLiteralExpr
  86. | CXXNullPtrLiteralExpr
  87. | CXXThisExpr
  88. | CXXThrowExpr
  89. | CXXNewExpr
  90. | CXXDeleteExpr
  91. | UnaryExpr
  92. | ObjCStringLiteral
  93. | ObjCEncodeExpr
  94. | ObjCSelectorExpr
  95. | ObjCProtocolExpr
  96. | ObjCBridgedCastExpr
  97. | PackExpansionExpr
  98. | SizeOfPackExpr
  99. | LambdaExpr
  100. | ObjCBoolLiteralExpr
  101. | ObjCSelfExpr
  102. | OMPArraySectionExpr
  103. | ObjCAvailabilityCheckExpr
  104. | FixedPointLiteral
  105. | OMPArrayShapingExpr
  106. | OMPIteratorExpr
  107. | CXXAddrspaceCastExpr
  108. | UnexposedStmt
  109. | LabelStmt
  110. | CompoundStmt
  111. | CaseStmt
  112. | DefaultStmt
  113. | IfStmt
  114. | SwitchStmt
  115. | WhileStmt
  116. | DoStmt
  117. | ForStmt
  118. | GotoStmt
  119. | IndirectGotoStmt
  120. | ContinueStmt
  121. | BreakStmt
  122. | ReturnStmt
  123. | GCCAsmStmt
  124. | ObjCAtTryStmt
  125. | ObjCAtCatchStmt
  126. | ObjCAtFinallyStmt
  127. | ObjCAtThrowStmt
  128. | ObjCAtSynchronizedStmt
  129. | ObjCAutoreleasePoolStmt
  130. | ObjCForCollectionStmt
  131. | CXXCatchStmt
  132. | CXXTryStmt
  133. | CXXForRangeStmt
  134. | SEHTryStmt
  135. | SEHExceptStmt
  136. | SEHFinallyStmt
  137. | MSAsmStmt
  138. | NullStmt
  139. | DeclStmt
  140. | OMPParallelDirective
  141. | OMPSimdDirective
  142. | OMPForDirective
  143. | OMPSectionsDirective
  144. | OMPSectionDirective
  145. | OMPSingleDirective
  146. | OMPParallelForDirective
  147. | OMPParallelSectionsDirective
  148. | OMPTaskDirective
  149. | OMPMasterDirective
  150. | OMPCriticalDirective
  151. | OMPTaskyieldDirective
  152. | OMPBarrierDirective
  153. | OMPTaskwaitDirective
  154. | OMPFlushDirective
  155. | SEHLeaveStmt
  156. | OMPOrderedDirective
  157. | OMPAtomicDirective
  158. | OMPForSimdDirective
  159. | OMPParallelForSimdDirective
  160. | OMPTargetDirective
  161. | OMPTeamsDirective
  162. | OMPTaskgroupDirective
  163. | OMPCancellationPointDirective
  164. | OMPCancelDirective
  165. | OMPTargetDataDirective
  166. | OMPTaskLoopDirective
  167. | OMPTaskLoopSimdDirective
  168. | OMPDistributeDirective
  169. | OMPTargetEnterDataDirective
  170. | OMPTargetExitDataDirective
  171. | OMPTargetParallelDirective
  172. | OMPTargetParallelForDirective
  173. | OMPTargetUpdateDirective
  174. | OMPDistributeParallelForDirective
  175. | OMPDistributeParallelForSimdDirective
  176. | OMPDistributeSimdDirective
  177. | OMPTargetParallelForSimdDirective
  178. | OMPTargetSimdDirective
  179. | OMPTeamsDistributeDirective
  180. | OMPTeamsDistributeSimdDirective
  181. | OMPTeamsDistributeParallelForSimdDirective
  182. | OMPTeamsDistributeParallelForDirective
  183. | OMPTargetTeamsDirective
  184. | OMPTargetTeamsDistributeDirective
  185. | OMPTargetTeamsDistributeParallelForDirective
  186. | OMPTargetTeamsDistributeParallelForSimdDirective
  187. | OMPTargetTeamsDistributeSimdDirective
  188. | BuiltinBitCastExpr
  189. | OMPMasterTaskLoopDirective
  190. | OMPParallelMasterTaskLoopDirective
  191. | OMPMasterTaskLoopSimdDirective
  192. | OMPParallelMasterTaskLoopSimdDirective
  193. | OMPParallelMasterDirective
  194. | OMPDepobjDirective
  195. | OMPScanDirective
  196. | OMPTileDirective
  197. | OMPCanonicalLoop
  198. | OMPInteropDirective
  199. | OMPDispatchDirective
  200. | OMPMaskedDirective
  201. | OMPUnrollDirective
  202. | OMPMetaDirective
  203. | OMPGenericLoopDirective
  204. | TranslationUnit
  205. | UnexposedAttr
  206. | IBActionAttr
  207. | IBOutletAttr
  208. | IBOutletCollectionAttr
  209. | CXXFinalAttr
  210. | CXXOverrideAttr
  211. | AnnotateAttr
  212. | AsmLabelAttr
  213. | PackedAttr
  214. | PureAttr
  215. | ConstAttr
  216. | NoDuplicateAttr
  217. | CUDAConstantAttr
  218. | CUDADeviceAttr
  219. | CUDAGlobalAttr
  220. | CUDAHostAttr
  221. | CUDASharedAttr
  222. | VisibilityAttr
  223. | DLLExport
  224. | DLLImport
  225. | NSReturnsRetained
  226. | NSReturnsNotRetained
  227. | NSReturnsAutoreleased
  228. | NSConsumesSelf
  229. | NSConsumed
  230. | ObjCException
  231. | ObjCNSObject
  232. | ObjCIndependentClass
  233. | ObjCPreciseLifetime
  234. | ObjCReturnsInnerPointer
  235. | ObjCRequiresSuper
  236. | ObjCRootClass
  237. | ObjCSubclassingRestricted
  238. | ObjCExplicitProtocolImpl
  239. | ObjCDesignatedInitializer
  240. | ObjCRuntimeVisible
  241. | ObjCBoxable
  242. | FlagEnum
  243. | ConvergentAttr
  244. | WarnUnusedAttr
  245. | WarnUnusedResultAttr
  246. | AlignedAttr
  247. | PreprocessingDirective
  248. | MacroDefinition
  249. | MacroExpansion
  250. | InclusionDirective
  251. | ModuleImportDecl
  252. | TypeAliasTemplateDecl
  253. | StaticAssert
  254. | FriendDecl
  255. | OverloadCandidate
type cxcursorkind__arity = [
  1. | `Zero
]
and cxcursorkind__structure = [
  1. | `Name of [ `Constr of ((((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))))) * (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))))) * ((((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))))) * (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))))) ]
]
and cxcursorkind__kinds = [
  1. | `Constr
]
and cxcursorkind__gadt = unit
type Refl.refl +=
  1. | Refl_cxcursorkind : cxcursorkind Refl.refl
type cxcursor
val get_null_cursor : unit -> cxcursor
val get_translation_unit_cursor : cxtranslationunit -> cxcursor
val equal_cursors : cxcursor -> cxcursor -> bool
val cursor_is_null : cxcursor -> bool
val hash_cursor : cxcursor -> int
val get_cursor_kind : cxcursor -> cxcursorkind
val is_declaration : cxcursorkind -> bool
val is_invalid_declaration : cxcursor -> bool
val is_reference : cxcursorkind -> bool
val is_expression : cxcursorkind -> bool
val is_statement : cxcursorkind -> bool
val is_attribute : cxcursorkind -> bool
val cursor_has_attrs : cxcursor -> int
val is_invalid : cxcursorkind -> bool
val is_translation_unit : cxcursorkind -> bool
val is_preprocessing : cxcursorkind -> bool
val is_unexposed : cxcursorkind -> bool
type cxlinkagekind =
  1. | Invalid
  2. | NoLinkage
  3. | Internal
  4. | UniqueExternal
  5. | External
type cxlinkagekind__arity = [
  1. | `Zero
]
and cxlinkagekind__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cxlinkagekind__kinds = [
  1. | `Constr
]
and cxlinkagekind__gadt = unit
type Refl.refl +=
  1. | Refl_cxlinkagekind : cxlinkagekind Refl.refl
val get_cursor_linkage : cxcursor -> cxlinkagekind
type cxvisibilitykind =
  1. | Invalid
  2. | Hidden
  3. | Protected
  4. | Default
type cxvisibilitykind__arity = [
  1. | `Zero
]
and cxvisibilitykind__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cxvisibilitykind__kinds = [
  1. | `Constr
]
and cxvisibilitykind__gadt = unit
type Refl.refl +=
  1. | Refl_cxvisibilitykind : cxvisibilitykind Refl.refl
val get_cursor_visibility : cxcursor -> cxvisibilitykind
type cxavailabilitykind =
  1. | Available
  2. | Deprecated
  3. | NotAvailable
  4. | NotAccessible
type cxavailabilitykind__arity = [
  1. | `Zero
]
and cxavailabilitykind__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cxavailabilitykind__kinds = [
  1. | `Constr
]
and cxavailabilitykind__gadt = unit
type Refl.refl +=
  1. | Refl_cxavailabilitykind : cxavailabilitykind Refl.refl
val get_cursor_availability : cxcursor -> cxavailabilitykind
val cursor_get_var_decl_initializer : cxcursor -> cxcursor
val cursor_has_var_decl_global_storage : cxcursor -> int
val cursor_has_var_decl_external_storage : cxcursor -> int
type cxlanguagekind =
  1. | Invalid
  2. | C
  3. | ObjC
  4. | CPlusPlus
type cxlanguagekind__arity = [
  1. | `Zero
]
and cxlanguagekind__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cxlanguagekind__kinds = [
  1. | `Constr
]
and cxlanguagekind__gadt = unit
type Refl.refl +=
  1. | Refl_cxlanguagekind : cxlanguagekind Refl.refl
val get_cursor_language : cxcursor -> cxlanguagekind
type cxtlskind =
  1. | None
  2. | Dynamic
  3. | Static
type cxtlskind__arity = [
  1. | `Zero
]
and cxtlskind__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref ]
]
and cxtlskind__rec_group = (cxtlskind__arity * cxtlskind__structure) Stdcompat.ref
and cxtlskind__kinds = [
  1. | `Constr
]
and cxtlskind__gadt = unit
type Refl.refl +=
  1. | Refl_cxtlskind : cxtlskind Refl.refl
val cxtlskind_refl : (cxtlskind, cxtlskind__structure, unit, cxtlskind__rec_group, [> cxtlskind__kinds ], unit, unit, unit, cxtlskind__gadt) Refl.desc
val get_cursor_tlskind : cxcursor -> cxtlskind
type cxcursorset
val create_cxcursor_set : unit -> cxcursorset
val cxcursor_set_contains : cxcursorset -> cxcursor -> int
val cxcursor_set_insert : cxcursorset -> cxcursor -> int
val get_cursor_semantic_parent : cxcursor -> cxcursor
val get_cursor_lexical_parent : cxcursor -> cxcursor
val get_overridden_cursors : cxcursor -> cxcursor array
val get_included_file : cxcursor -> cxfile
val get_cursor_location : cxcursor -> cxsourcelocation
val get_cursor_extent : cxcursor -> cxsourcerange
type cxtypekind =
  1. | Invalid
  2. | Unexposed
  3. | Void
  4. | Bool
  5. | Char_U
  6. | UChar
  7. | Char16
  8. | Char32
  9. | UShort
  10. | UInt
  11. | ULong
  12. | ULongLong
  13. | UInt128
  14. | Char_S
  15. | SChar
  16. | WChar
  17. | Short
  18. | Int
  19. | Long
  20. | LongLong
  21. | Int128
  22. | Float
  23. | Double
  24. | LongDouble
  25. | NullPtr
  26. | Overload
  27. | Dependent
  28. | ObjCId
  29. | ObjCClass
  30. | ObjCSel
  31. | Float128
  32. | Half
  33. | Float16
  34. | ShortAccum
  35. | Accum
  36. | LongAccum
  37. | UShortAccum
  38. | UAccum
  39. | ULongAccum
  40. | BFloat16
  41. | Ibm128
  42. | Complex
  43. | Pointer
  44. | BlockPointer
  45. | LValueReference
  46. | RValueReference
  47. | Record
  48. | Enum
  49. | Typedef
  50. | ObjCInterface
  51. | ObjCObjectPointer
  52. | FunctionNoProto
  53. | FunctionProto
  54. | ConstantArray
  55. | Vector
  56. | IncompleteArray
  57. | VariableArray
  58. | DependentSizedArray
  59. | MemberPointer
  60. | Auto
  61. | Elaborated
  62. | Pipe
  63. | OCLImage1dRO
  64. | OCLImage1dArrayRO
  65. | OCLImage1dBufferRO
  66. | OCLImage2dRO
  67. | OCLImage2dArrayRO
  68. | OCLImage2dDepthRO
  69. | OCLImage2dArrayDepthRO
  70. | OCLImage2dMSAARO
  71. | OCLImage2dArrayMSAARO
  72. | OCLImage2dMSAADepthRO
  73. | OCLImage2dArrayMSAADepthRO
  74. | OCLImage3dRO
  75. | OCLImage1dWO
  76. | OCLImage1dArrayWO
  77. | OCLImage1dBufferWO
  78. | OCLImage2dWO
  79. | OCLImage2dArrayWO
  80. | OCLImage2dDepthWO
  81. | OCLImage2dArrayDepthWO
  82. | OCLImage2dMSAAWO
  83. | OCLImage2dArrayMSAAWO
  84. | OCLImage2dMSAADepthWO
  85. | OCLImage2dArrayMSAADepthWO
  86. | OCLImage3dWO
  87. | OCLImage1dRW
  88. | OCLImage1dArrayRW
  89. | OCLImage1dBufferRW
  90. | OCLImage2dRW
  91. | OCLImage2dArrayRW
  92. | OCLImage2dDepthRW
  93. | OCLImage2dArrayDepthRW
  94. | OCLImage2dMSAARW
  95. | OCLImage2dArrayMSAARW
  96. | OCLImage2dMSAADepthRW
  97. | OCLImage2dArrayMSAADepthRW
  98. | OCLImage3dRW
  99. | OCLSampler
  100. | OCLEvent
  101. | OCLQueue
  102. | OCLReserveID
  103. | ObjCObject
  104. | ObjCTypeParam
  105. | Attributed
  106. | OCLIntelSubgroupAVCMcePayload
  107. | OCLIntelSubgroupAVCImePayload
  108. | OCLIntelSubgroupAVCRefPayload
  109. | OCLIntelSubgroupAVCSicPayload
  110. | OCLIntelSubgroupAVCMceResult
  111. | OCLIntelSubgroupAVCImeResult
  112. | OCLIntelSubgroupAVCRefResult
  113. | OCLIntelSubgroupAVCSicResult
  114. | OCLIntelSubgroupAVCImeResultSingleRefStreamout
  115. | OCLIntelSubgroupAVCImeResultDualRefStreamout
  116. | OCLIntelSubgroupAVCImeSingleRefStreamin
  117. | OCLIntelSubgroupAVCImeDualRefStreamin
  118. | ExtVector
  119. | Atomic
type cxtypekind__arity = [
  1. | `Zero
]
and cxtypekind__structure = [
  1. | `Name of [ `Constr of (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) ]
]
and cxtypekind__rec_group = (cxtypekind__arity * cxtypekind__structure) Stdcompat.ref
and cxtypekind__kinds = [
  1. | `Constr
]
and cxtypekind__gadt = unit
type Refl.refl +=
  1. | Refl_cxtypekind : cxtypekind Refl.refl
type cxtype
val get_type_kind : cxtype -> cxtypekind
val get_cursor_type : cxcursor -> cxtype
val get_type_spelling : cxtype -> string
val get_typedef_decl_underlying_type : cxcursor -> cxtype
val get_enum_decl_integer_type : cxcursor -> cxtype
val get_enum_constant_decl_value : cxcursor -> int
val get_enum_constant_decl_unsigned_value : cxcursor -> int
val get_field_decl_bit_width : cxcursor -> int
val cursor_get_num_arguments : cxcursor -> int
val cursor_get_argument : cxcursor -> int -> cxcursor
val cursor_get_num_template_arguments : cxcursor -> int
type cxtemplateargumentkind =
  1. | Null
  2. | Type
  3. | Declaration
  4. | NullPtr
  5. | Integral
  6. | Template
  7. | TemplateExpansion
  8. | Expression
  9. | Pack
  10. | Invalid
type cxtemplateargumentkind__arity = [
  1. | `Zero
]
and cxtemplateargumentkind__structure = [
  1. | `Name of [ `Constr of ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) ]
]
and cxtemplateargumentkind__kinds = [
  1. | `Constr
]
and cxtemplateargumentkind__gadt = unit
type Refl.refl +=
  1. | Refl_cxtemplateargumentkind : cxtemplateargumentkind Refl.refl
val cursor_get_template_argument_kind : cxcursor -> int -> cxtemplateargumentkind
val cursor_get_template_argument_type : cxcursor -> int -> cxtype
val cursor_get_template_argument_value : cxcursor -> int -> int
val cursor_get_template_argument_unsigned_value : cxcursor -> int -> int
val equal_types : cxtype -> cxtype -> bool
val get_canonical_type : cxtype -> cxtype
val is_const_qualified_type : cxtype -> bool
val cursor_is_macro_function_like : cxcursor -> bool
val cursor_is_macro_builtin : cxcursor -> bool
val cursor_is_function_inlined : cxcursor -> bool
val is_volatile_qualified_type : cxtype -> bool
val is_restrict_qualified_type : cxtype -> bool
val get_address_space : cxtype -> int
val get_typedef_name : cxtype -> string
val get_pointee_type : cxtype -> cxtype
val get_type_declaration : cxtype -> cxcursor
val get_decl_obj_ctype_encoding : cxcursor -> string
val type_get_obj_cencoding : cxtype -> string
val get_type_kind_spelling : cxtypekind -> string
type cxcallingconv =
  1. | Default
  2. | C
  3. | X86StdCall
  4. | X86FastCall
  5. | X86ThisCall
  6. | X86Pascal
  7. | AAPCS
  8. | AAPCS_VFP
  9. | X86RegCall
  10. | IntelOclBicc
  11. | Win64
  12. | X86_64SysV
  13. | X86VectorCall
  14. | Swift
  15. | PreserveMost
  16. | PreserveAll
  17. | AArch64VectorCall
  18. | SwiftAsync
  19. | Invalid
  20. | Unexposed
type cxcallingconv__arity = [
  1. | `Zero
]
and cxcallingconv__structure = [
  1. | `Name of [ `Constr of (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) ]
]
and cxcallingconv__kinds = [
  1. | `Constr
]
and cxcallingconv__gadt = unit
type Refl.refl +=
  1. | Refl_cxcallingconv : cxcallingconv Refl.refl
val get_function_type_calling_conv : cxtype -> cxcallingconv
val get_result_type : cxtype -> cxtype
val get_exception_specification_type : cxtype -> int
val get_num_arg_types : cxtype -> int
val get_arg_type : cxtype -> int -> cxtype
val type_get_obj_cobject_base_type : cxtype -> cxtype
val type_get_num_obj_cprotocol_refs : cxtype -> int
val type_get_obj_cprotocol_decl : cxtype -> int -> cxcursor
val type_get_num_obj_ctype_args : cxtype -> int
val type_get_obj_ctype_arg : cxtype -> int -> cxtype
val is_function_type_variadic : cxtype -> bool
val get_cursor_result_type : cxcursor -> cxtype
val get_cursor_exception_specification_type : cxcursor -> int
val is_podtype : cxtype -> bool
val get_element_type : cxtype -> cxtype
val get_num_elements : cxtype -> int
val get_array_element_type : cxtype -> cxtype
val get_array_size : cxtype -> int
val type_get_named_type : cxtype -> cxtype
val type_is_transparent_tag_typedef : cxtype -> bool
type cxtypenullabilitykind =
  1. | NonNull
  2. | Nullable
  3. | Unspecified
  4. | Invalid
  5. | NullableResult
type cxtypenullabilitykind__arity = [
  1. | `Zero
]
and cxtypenullabilitykind__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cxtypenullabilitykind__kinds = [
  1. | `Constr
]
and cxtypenullabilitykind__gadt = unit
type Refl.refl +=
  1. | Refl_cxtypenullabilitykind : cxtypenullabilitykind Refl.refl
val type_get_nullability : cxtype -> cxtypenullabilitykind
val type_get_align_of : cxtype -> int
val type_get_class_type : cxtype -> cxtype
val type_get_size_of : cxtype -> int
val type_get_offset_of : cxtype -> string -> int
val type_get_modified_type : cxtype -> cxtype
val type_get_value_type : cxtype -> cxtype
val cursor_get_offset_of_field : cxcursor -> int
val cursor_is_anonymous : cxcursor -> bool
val cursor_is_anonymous_record_decl : cxcursor -> bool
val cursor_is_inline_namespace : cxcursor -> bool
val type_get_num_template_arguments : cxtype -> int
val type_get_template_argument_as_type : cxtype -> int -> cxtype
type cxrefqualifierkind =
  1. | None
  2. | LValue
  3. | RValue
type cxrefqualifierkind__arity = [
  1. | `Zero
]
and cxrefqualifierkind__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref ]
]
and cxrefqualifierkind__kinds = [
  1. | `Constr
]
and cxrefqualifierkind__gadt = unit
type Refl.refl +=
  1. | Refl_cxrefqualifierkind : cxrefqualifierkind Refl.refl
val type_get_cxxref_qualifier : cxtype -> cxrefqualifierkind
val cursor_is_bit_field : cxcursor -> bool
val is_virtual_base : cxcursor -> bool
type cx_cxxaccessspecifier =
  1. | CXXInvalidAccessSpecifier
  2. | CXXPublic
  3. | CXXProtected
  4. | CXXPrivate
type cx_cxxaccessspecifier__arity = [
  1. | `Zero
]
and cx_cxxaccessspecifier__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cx_cxxaccessspecifier__kinds = [
  1. | `Constr
]
and cx_cxxaccessspecifier__gadt = unit
type Refl.refl +=
  1. | Refl_cx_cxxaccessspecifier : cx_cxxaccessspecifier Refl.refl
val get_cxxaccess_specifier : cxcursor -> cx_cxxaccessspecifier
type cx_storageclass =
  1. | Invalid
  2. | None
  3. | Extern
  4. | Static
  5. | PrivateExtern
  6. | OpenCLWorkGroupLocal
  7. | Auto
  8. | Register
type cx_storageclass__arity = [
  1. | `Zero
]
and cx_storageclass__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) ]
]
and cx_storageclass__kinds = [
  1. | `Constr
]
and cx_storageclass__gadt = unit
type Refl.refl +=
  1. | Refl_cx_storageclass : cx_storageclass Refl.refl
val cursor_get_storage_class : cxcursor -> cx_storageclass
val get_num_overloaded_decls : cxcursor -> int
val get_overloaded_decl : cxcursor -> int -> cxcursor
val get_iboutlet_collection_type : cxcursor -> cxtype
type cxchildvisitresult =
  1. | Break
  2. | Continue
  3. | Recurse
type cxchildvisitresult__arity = [
  1. | `Zero
]
and cxchildvisitresult__structure = [
  1. | `Name of [ `Constr of ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref ]
]
and cxchildvisitresult__kinds = [
  1. | `Constr
]
and cxchildvisitresult__gadt = unit
type Refl.refl +=
  1. | Refl_cxchildvisitresult : cxchildvisitresult Refl.refl
val visit_children : cxcursor -> (cxcursor -> cxcursor -> cxchildvisitresult) -> bool
val get_cursor_usr : cxcursor -> string
val get_cursor_spelling : cxcursor -> string
val cursor_get_spelling_name_range : cxcursor -> piece_index:int -> options:int -> cxsourcerange
type cxprintingpolicy
type cxprintingpolicyproperty =
  1. | Indentation
  2. | SuppressSpecifiers
  3. | SuppressTagKeyword
  4. | IncludeTagDefinition
  5. | SuppressScope
  6. | SuppressUnwrittenScope
  7. | SuppressInitializers
  8. | ConstantArraySizeAsWritten
  9. | AnonymousTagLocations
  10. | SuppressStrongLifetime
  11. | SuppressLifetimeQualifiers
  12. | SuppressTemplateArgsInCXXConstructors
  13. | Bool
  14. | Restrict
  15. | Alignof
  16. | UnderscoreAlignof
  17. | UseVoidForZeroParams
  18. | TerseOutput
  19. | PolishForDeclaration
  20. | Half
  21. | MSWChar
  22. | IncludeNewlines
  23. | MSVCFormatting
  24. | ConstantsAsWritten
  25. | SuppressImplicitBase
  26. | FullyQualifiedName
type cxprintingpolicyproperty__arity = [
  1. | `Zero
]
and cxprintingpolicyproperty__structure = [
  1. | `Name of [ `Constr of (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) ]
]
and cxprintingpolicyproperty__kinds = [
  1. | `Constr
]
and cxprintingpolicyproperty__gadt = unit
type Refl.refl +=
  1. | Refl_cxprintingpolicyproperty : cxprintingpolicyproperty Refl.refl
val printing_policy_get_property : cxprintingpolicy -> cxprintingpolicyproperty -> int
val printing_policy_set_property : cxprintingpolicy -> cxprintingpolicyproperty -> int -> unit
val get_cursor_printing_policy : cxcursor -> cxprintingpolicy
val get_cursor_pretty_printed : cxcursor -> cxprintingpolicy -> string
val get_cursor_display_name : cxcursor -> string
val get_cursor_referenced : cxcursor -> cxcursor
val get_cursor_definition : cxcursor -> cxcursor
val is_cursor_definition : cxcursor -> bool
val get_canonical_cursor : cxcursor -> cxcursor
val cursor_get_obj_cselector_index : cxcursor -> int
val cursor_is_dynamic_call : cxcursor -> bool
val cursor_get_receiver_type : cxcursor -> cxtype
val cursor_get_obj_cproperty_attributes : cxcursor -> int -> int
val cursor_get_obj_cproperty_getter_name : cxcursor -> string
val cursor_get_obj_cproperty_setter_name : cxcursor -> string
val cursor_get_obj_cdecl_qualifiers : cxcursor -> int
val cursor_is_obj_coptional : cxcursor -> bool
val cursor_is_variadic : cxcursor -> bool
val cursor_is_external_symbol : cxcursor -> (string * string * int) option
val cursor_get_comment_range : cxcursor -> cxsourcerange
val cursor_get_raw_comment_text : cxcursor -> string
val cursor_get_brief_comment_text : cxcursor -> string option
val cursor_get_mangling : cxcursor -> string
val cursor_get_cxxmanglings : cxcursor -> string array
val cursor_get_obj_cmanglings : cxcursor -> string array
type cxmodule
val cursor_get_module : cxcursor -> cxmodule
val get_module_for_file : cxtranslationunit -> cxfile -> cxmodule
val module_get_astfile : cxmodule -> cxfile
val module_get_parent : cxmodule -> cxmodule
val module_get_name : cxmodule -> string
val module_get_full_name : cxmodule -> string
val module_is_system : cxmodule -> bool
val module_get_num_top_level_headers : cxtranslationunit -> cxmodule -> int
val module_get_top_level_header : cxtranslationunit -> cxmodule -> int -> cxfile
val cxxconstructor_is_converting_constructor : cxcursor -> bool
val cxxconstructor_is_copy_constructor : cxcursor -> bool
val cxxconstructor_is_default_constructor : cxcursor -> bool
val cxxconstructor_is_move_constructor : cxcursor -> bool
val cxxfield_is_mutable : cxcursor -> bool
val cxxmethod_is_defaulted : cxcursor -> bool
val cxxmethod_is_pure_virtual : cxcursor -> bool
val cxxmethod_is_static : cxcursor -> bool
val cxxmethod_is_virtual : cxcursor -> bool
val cxxrecord_is_abstract : cxcursor -> bool
val enum_decl_is_scoped : cxcursor -> bool
val cxxmethod_is_const : cxcursor -> bool
val get_template_cursor_kind : cxcursor -> cxcursorkind
val get_specialized_cursor_template : cxcursor -> cxcursor
val get_cursor_reference_name_range : cxcursor -> name_flags:int -> piece_index:int -> cxsourcerange
type cxtokenkind =
  1. | Punctuation
  2. | Keyword
  3. | Identifier
  4. | Literal
  5. | Comment
type cxtokenkind__arity = [
  1. | `Zero
]
and cxtokenkind__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cxtokenkind__kinds = [
  1. | `Constr
]
and cxtokenkind__gadt = unit
type Refl.refl +=
  1. | Refl_cxtokenkind : cxtokenkind Refl.refl
type cxtoken
val get_token_kind : cxtoken -> cxtokenkind
val get_token_spelling : cxtranslationunit -> cxtoken -> string
val get_token_location : cxtranslationunit -> cxtoken -> cxsourcelocation
val get_token_extent : cxtranslationunit -> cxtoken -> cxsourcerange
val get_cursor_kind_spelling : cxcursorkind -> string
val enable_stack_traces : unit -> unit
type cxcompletionchunkkind =
  1. | Optional
  2. | TypedText
  3. | Text
  4. | Placeholder
  5. | Informative
  6. | CurrentParameter
  7. | LeftParen
  8. | RightParen
  9. | LeftBracket
  10. | RightBracket
  11. | LeftBrace
  12. | RightBrace
  13. | LeftAngle
  14. | RightAngle
  15. | Comma
  16. | ResultType
  17. | Colon
  18. | SemiColon
  19. | Equal
  20. | HorizontalSpace
  21. | VerticalSpace
type cxcompletionchunkkind__arity = [
  1. | `Zero
]
and cxcompletionchunkkind__structure = [
  1. | `Name of [ `Constr of (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) ]
]
and cxcompletionchunkkind__kinds = [
  1. | `Constr
]
and cxcompletionchunkkind__gadt = unit
type Refl.refl +=
  1. | Refl_cxcompletionchunkkind : cxcompletionchunkkind Refl.refl
type cxcompletionstring
val get_completion_chunk_kind : cxcompletionstring -> int -> cxcompletionchunkkind
val get_completion_chunk_text : cxcompletionstring -> int -> string
val get_completion_chunk_completion_string : cxcompletionstring -> int -> cxcompletionstring
val get_num_completion_chunks : cxcompletionstring -> int
val get_completion_priority : cxcompletionstring -> int
val get_completion_availability : cxcompletionstring -> cxavailabilitykind
val get_completion_num_annotations : cxcompletionstring -> int
val get_completion_annotation : cxcompletionstring -> int -> string
val get_completion_parent : cxcompletionstring -> string
val get_completion_brief_comment : cxcompletionstring -> string
val get_cursor_completion_string : cxcursor -> cxcompletionstring
val default_code_complete_options : unit -> int
val get_clang_version : unit -> string
val toggle_crash_recovery : int -> unit
type cxevalresult
val cursor_evaluate : cxcursor -> cxevalresult
type cxevalresultkind =
  1. | Int
  2. | Float
  3. | ObjCStrLiteral
  4. | StrLiteral
  5. | CFStr
  6. | Other
  7. | UnExposed
type cxevalresultkind__arity = [
  1. | `Zero
]
and cxevalresultkind__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and cxevalresultkind__kinds = [
  1. | `Constr
]
and cxevalresultkind__gadt = unit
type Refl.refl +=
  1. | Refl_cxevalresultkind : cxevalresultkind Refl.refl
val eval_result_get_kind : cxevalresult -> cxevalresultkind
val eval_result_get_as_int : cxevalresult -> int
val eval_result_get_as_long_long : cxevalresult -> int
val eval_result_is_unsigned_int : cxevalresult -> bool
val eval_result_get_as_unsigned : cxevalresult -> int
val eval_result_get_as_double : cxevalresult -> float
val eval_result_get_as_str : cxevalresult -> string
type cxremapping
val get_remappings : string -> cxremapping
val get_remappings_from_file_list : string array -> cxremapping
val remap_get_num_files : cxremapping -> int
type cxindexaction
val index_action_create : cxindex -> cxindexaction
type cxvisitorresult =
  1. | Break
  2. | Continue
type cxvisitorresult__arity = [
  1. | `Zero
]
and cxvisitorresult__structure = [
  1. | `Name of [ `Constr of [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref ]
]
and cxvisitorresult__kinds = [
  1. | `Constr
]
and cxvisitorresult__gadt = unit
type Refl.refl +=
  1. | Refl_cxvisitorresult : cxvisitorresult Refl.refl
val type_visit_fields : cxtype -> (cxcursor -> cxvisitorresult) -> bool
type cxversion = {
  1. major : int;
  2. minor : int;
  3. subminor : int;
}
type cxversion__arity = [
  1. | `Zero
]
and cxversion__structure = [
  1. | `Name of [ `Record of [ `Mono of [ `Builtin of [ `Int ] ] ] * ([ `Mono of [ `Builtin of [ `Int ] ] ] * ([ `Mono of [ `Builtin of [ `Int ] ] ] * unit)) ]
]
and cxversion__rec_group = (cxversion__arity * cxversion__structure) Stdcompat.ref
and cxversion__kinds = [
  1. | `Int
  2. | `Record
]
and cxversion__gadt = unit
type Refl.refl +=
  1. | Refl_cxversion : cxversion Refl.refl
val cxversion_refl : (cxversion, cxversion__structure, unit, cxversion__rec_group, [> cxversion__kinds ], unit, unit, unit, cxversion__gadt) Refl.desc
val ext_get_version : unit -> cxversion
type cxint
val equal_cxint : cxint -> cxint -> bool
val compare_cxint : cxint -> cxint -> int
val ext_integer_literal_get_value : cxcursor -> cxint
val ext_int_is_valid : cxint -> bool
val ext_int_to_string : cxint -> int -> bool -> string
val ext_int_round_to_double : cxint -> bool -> float
val ext_int_bits_to_float : cxint -> float
val ext_int_get_bit_width : cxint -> int
val ext_int_get_active_bits : cxint -> int
val ext_int_get_min_signed_bits : cxint -> int
val ext_int_get_bool_value : cxint -> bool
val ext_int_get_zext_value : cxint -> int
val ext_int_get_sext_value : cxint -> int
val ext_int_get_zext_value64 : cxint -> Stdcompat.Int64.t
val ext_int_get_sext_value64 : cxint -> Stdcompat.Int64.t
type cxfloat
val equal_cxfloat : cxfloat -> cxfloat -> bool
val compare_cxfloat : cxfloat -> cxfloat -> int
val ext_floating_literal_get_value : cxcursor -> cxfloat
val ext_float_is_valid : cxfloat -> bool
val ext_float_to_string : cxfloat -> string
type clang_ext_fltsemantics =
  1. | IEEEhalf
  2. | IEEEsingle
  3. | IEEEdouble
  4. | IEEEquad
  5. | PPCDoubleDouble
  6. | X87DoubleExtended
  7. | Bogus
  8. | Invalid
type clang_ext_fltsemantics__arity = [
  1. | `Zero
]
and clang_ext_fltsemantics__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) ]
]
and clang_ext_fltsemantics__kinds = [
  1. | `Constr
]
and clang_ext_fltsemantics__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_fltsemantics : clang_ext_fltsemantics Refl.refl
val ext_float_get_semantics : cxfloat -> clang_ext_fltsemantics
val ext_float_convert_to_float : cxfloat -> float
val ext_float_convert_to_double : cxfloat -> float
val ext_string_literal_get_string : cxcursor -> string
val ext_string_literal_get_bytes : cxcursor -> string
val ext_string_literal_get_byte_length : cxcursor -> int
val ext_string_literal_get_char_byte_width : cxcursor -> int
type clang_ext_stringkind =
  1. | Ascii
  2. | Wide
  3. | UTF8
  4. | UTF16
  5. | UTF32
  6. | InvalidStringKind
type clang_ext_stringkind__arity = [
  1. | `Zero
]
and clang_ext_stringkind__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and clang_ext_stringkind__kinds = [
  1. | `Constr
]
and clang_ext_stringkind__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_stringkind : clang_ext_stringkind Refl.refl
val ext_string_literal_get_kind : cxcursor -> clang_ext_stringkind
type clang_ext_unaryoperatorkind =
  1. | PostInc
  2. | PostDec
  3. | PreInc
  4. | PreDec
  5. | AddrOf
  6. | Deref
  7. | Plus
  8. | Minus
  9. | Not
  10. | LNot
  11. | Real
  12. | Imag
  13. | Extension
  14. | Coawait
  15. | InvalidUnaryOperator
type clang_ext_unaryoperatorkind__arity = [
  1. | `Zero
]
and clang_ext_unaryoperatorkind__structure = [
  1. | `Name of [ `Constr of ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) ]
]
and clang_ext_unaryoperatorkind__kinds = [
  1. | `Constr
]
and clang_ext_unaryoperatorkind__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_unaryoperatorkind : clang_ext_unaryoperatorkind Refl.refl
val ext_unary_operator_get_opcode : cxcursor -> clang_ext_unaryoperatorkind
val ext_unary_operator_get_opcode_spelling : clang_ext_unaryoperatorkind -> string
type clang_ext_binaryoperatorkind =
  1. | PtrMemD
  2. | PtrMemI
  3. | Mul
  4. | Div
  5. | Rem
  6. | Add
  7. | Sub
  8. | Shl
  9. | Shr
  10. | Cmp
  11. | LT
  12. | GT
  13. | LE
  14. | GE
  15. | EQ
  16. | NE
  17. | And
  18. | Xor
  19. | Or
  20. | LAnd
  21. | LOr
  22. | Assign
  23. | MulAssign
  24. | DivAssign
  25. | RemAssign
  26. | AddAssign
  27. | SubAssign
  28. | ShlAssign
  29. | ShrAssign
  30. | AndAssign
  31. | XorAssign
  32. | OrAssign
  33. | Comma
  34. | InvalidBinaryOperator
type clang_ext_binaryoperatorkind__arity = [
  1. | `Zero
]
and clang_ext_binaryoperatorkind__structure = [
  1. | `Name of [ `Constr of ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) ]
]
and clang_ext_binaryoperatorkind__kinds = [
  1. | `Constr
]
and clang_ext_binaryoperatorkind__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_binaryoperatorkind : clang_ext_binaryoperatorkind Refl.refl
val ext_binary_operator_get_opcode : cxcursor -> clang_ext_binaryoperatorkind
val ext_binary_operator_get_opcode_spelling : clang_ext_binaryoperatorkind -> string
val ext_for_stmt_get_children_set : cxcursor -> int
val ext_if_stmt_get_children_set : cxcursor -> int
val ext_if_stmt_get_init : cxcursor -> cxcursor
val ext_if_stmt_get_condition_variable : cxcursor -> cxcursor
val ext_if_stmt_get_cond : cxcursor -> cxcursor
val ext_if_stmt_get_then : cxcursor -> cxcursor
val ext_if_stmt_get_else : cxcursor -> cxcursor
val ext_switch_stmt_get_children_set : cxcursor -> int
val ext_switch_stmt_get_init : cxcursor -> cxcursor
val ext_while_stmt_get_children_set : cxcursor -> int
type clang_ext_elaboratedtypekeyword =
  1. | Struct
  2. | Interface
  3. | Union
  4. | Class
  5. | Enum
  6. | Typename
  7. | NoKeyword
type clang_ext_elaboratedtypekeyword__arity = [
  1. | `Zero
]
and clang_ext_elaboratedtypekeyword__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and clang_ext_elaboratedtypekeyword__kinds = [
  1. | `Constr
]
and clang_ext_elaboratedtypekeyword__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_elaboratedtypekeyword : clang_ext_elaboratedtypekeyword Refl.refl
val ext_elaborated_type_get_keyword : cxtype -> clang_ext_elaboratedtypekeyword
val ext_elaborated_type_get_keyword_spelling : clang_ext_elaboratedtypekeyword -> string
val ext_var_decl_has_init : cxcursor -> bool
val ext_var_decl_is_constexpr : cxcursor -> bool
val ext_member_ref_expr_is_arrow : cxcursor -> bool
val ext_stmt_get_class_name : cxcursor -> string
val ext_stmt_get_class_kind : cxcursor -> int
type clang_ext_cursorkind =
  1. | ImplicitCastExpr
  2. | BinaryConditionalOperator
  3. | UnaryExprOrTypeTraitExpr
  4. | EmptyDecl
  5. | LinkageSpecDecl
  6. | Unknown
type clang_ext_cursorkind__arity = [
  1. | `Zero
]
and clang_ext_cursorkind__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and clang_ext_cursorkind__kinds = [
  1. | `Constr
]
and clang_ext_cursorkind__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_cursorkind : clang_ext_cursorkind Refl.refl
val ext_get_cursor_kind : cxcursor -> clang_ext_cursorkind
type clang_ext_declkind =
  1. | InvalidDecl
  2. | AccessSpec
  3. | Block
  4. | Captured
  5. | ClassScopeFunctionSpecialization
  6. | Empty
  7. | Export
  8. | ExternCContext
  9. | FileScopeAsm
  10. | Friend
  11. | FriendTemplate
  12. | Import
  13. | LifetimeExtendedTemporary
  14. | LinkageSpec
  15. | Using
  16. | UsingEnum
  17. | Label
  18. | Namespace
  19. | NamespaceAlias
  20. | ObjCCompatibleAlias
  21. | ObjCCategory
  22. | ObjCCategoryImpl
  23. | ObjCImplementation
  24. | ObjCInterface
  25. | ObjCProtocol
  26. | ObjCMethod
  27. | ObjCProperty
  28. | BuiltinTemplate
  29. | Concept
  30. | ClassTemplate
  31. | FunctionTemplate
  32. | TypeAliasTemplate
  33. | VarTemplate
  34. | TemplateTemplateParm
  35. | Enum
  36. | Record
  37. | CXXRecord
  38. | ClassTemplateSpecialization
  39. | ClassTemplatePartialSpecialization
  40. | TemplateTypeParm
  41. | ObjCTypeParam
  42. | TypeAlias
  43. | Typedef
  44. | UnresolvedUsingTypename
  45. | UnresolvedUsingIfExists
  46. | UsingDirective
  47. | UsingPack
  48. | UsingShadow
  49. | ConstructorUsingShadow
  50. | Binding
  51. | Field
  52. | ObjCAtDefsField
  53. | ObjCIvar
  54. | Function
  55. | CXXDeductionGuide
  56. | CXXMethod
  57. | CXXConstructor
  58. | CXXConversion
  59. | CXXDestructor
  60. | MSProperty
  61. | NonTypeTemplateParm
  62. | Var
  63. | Decomposition
  64. | ImplicitParam
  65. | OMPCapturedExpr
  66. | ParmVar
  67. | VarTemplateSpecialization
  68. | VarTemplatePartialSpecialization
  69. | EnumConstant
  70. | IndirectField
  71. | MSGuid
  72. | OMPDeclareMapper
  73. | OMPDeclareReduction
  74. | TemplateParamObject
  75. | UnresolvedUsingValue
  76. | OMPAllocate
  77. | OMPRequires
  78. | OMPThreadPrivate
  79. | ObjCPropertyImpl
  80. | PragmaComment
  81. | PragmaDetectMismatch
  82. | RequiresExprBody
  83. | StaticAssert
  84. | TranslationUnit
  85. | UnknownDecl
type clang_ext_declkind__arity = [
  1. | `Zero
]
and clang_ext_declkind__structure = [
  1. | `Name of [ `Constr of (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) ]
]
and clang_ext_declkind__kinds = [
  1. | `Constr
]
and clang_ext_declkind__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_declkind : clang_ext_declkind Refl.refl
val ext_decl_get_kind : cxcursor -> clang_ext_declkind
val ext_decl_visit_attributes : cxcursor -> (cxcursor -> cxcursor -> cxchildvisitresult) -> bool
val ext_decl_is_implicit : cxcursor -> bool
val ext_record_decl_is_injected_class_name : cxcursor -> bool
val ext_cxxrecord_decl_visit_bases : cxcursor -> (cxcursor -> cxcursor -> cxchildvisitresult) -> bool
type clang_ext_stmtkind =
  1. | InvalidStmt
  2. | GCCAsmStmt
  3. | MSAsmStmt
  4. | BreakStmt
  5. | CXXCatchStmt
  6. | CXXForRangeStmt
  7. | CXXTryStmt
  8. | CapturedStmt
  9. | CompoundStmt
  10. | ContinueStmt
  11. | CoreturnStmt
  12. | CoroutineBodyStmt
  13. | DeclStmt
  14. | DoStmt
  15. | ForStmt
  16. | GotoStmt
  17. | IfStmt
  18. | IndirectGotoStmt
  19. | MSDependentExistsStmt
  20. | NullStmt
  21. | OMPCanonicalLoop
  22. | OMPAtomicDirective
  23. | OMPBarrierDirective
  24. | OMPCancelDirective
  25. | OMPCancellationPointDirective
  26. | OMPCriticalDirective
  27. | OMPDepobjDirective
  28. | OMPDispatchDirective
  29. | OMPFlushDirective
  30. | OMPInteropDirective
  31. | OMPDistributeDirective
  32. | OMPDistributeParallelForDirective
  33. | OMPDistributeParallelForSimdDirective
  34. | OMPDistributeSimdDirective
  35. | OMPForDirective
  36. | OMPForSimdDirective
  37. | OMPGenericLoopDirective
  38. | OMPMasterTaskLoopDirective
  39. | OMPMasterTaskLoopSimdDirective
  40. | OMPParallelForDirective
  41. | OMPParallelForSimdDirective
  42. | OMPParallelMasterTaskLoopDirective
  43. | OMPParallelMasterTaskLoopSimdDirective
  44. | OMPSimdDirective
  45. | OMPTargetParallelForSimdDirective
  46. | OMPTargetSimdDirective
  47. | OMPTargetTeamsDistributeDirective
  48. | OMPTargetTeamsDistributeParallelForDirective
  49. | OMPTargetTeamsDistributeParallelForSimdDirective
  50. | OMPTargetTeamsDistributeSimdDirective
  51. | OMPTaskLoopDirective
  52. | OMPTaskLoopSimdDirective
  53. | OMPTeamsDistributeDirective
  54. | OMPTeamsDistributeParallelForDirective
  55. | OMPTeamsDistributeParallelForSimdDirective
  56. | OMPTeamsDistributeSimdDirective
  57. | OMPTileDirective
  58. | OMPUnrollDirective
  59. | OMPMaskedDirective
  60. | OMPMasterDirective
  61. | OMPMetaDirective
  62. | OMPOrderedDirective
  63. | OMPParallelDirective
  64. | OMPParallelMasterDirective
  65. | OMPParallelSectionsDirective
  66. | OMPScanDirective
  67. | OMPSectionDirective
  68. | OMPSectionsDirective
  69. | OMPSingleDirective
  70. | OMPTargetDataDirective
  71. | OMPTargetDirective
  72. | OMPTargetEnterDataDirective
  73. | OMPTargetExitDataDirective
  74. | OMPTargetParallelDirective
  75. | OMPTargetParallelForDirective
  76. | OMPTargetTeamsDirective
  77. | OMPTargetUpdateDirective
  78. | OMPTaskDirective
  79. | OMPTaskgroupDirective
  80. | OMPTaskwaitDirective
  81. | OMPTaskyieldDirective
  82. | OMPTeamsDirective
  83. | ObjCAtCatchStmt
  84. | ObjCAtFinallyStmt
  85. | ObjCAtSynchronizedStmt
  86. | ObjCAtThrowStmt
  87. | ObjCAtTryStmt
  88. | ObjCAutoreleasePoolStmt
  89. | ObjCForCollectionStmt
  90. | ReturnStmt
  91. | SEHExceptStmt
  92. | SEHFinallyStmt
  93. | SEHLeaveStmt
  94. | SEHTryStmt
  95. | CaseStmt
  96. | DefaultStmt
  97. | SwitchStmt
  98. | AttributedStmt
  99. | BinaryConditionalOperator
  100. | ConditionalOperator
  101. | AddrLabelExpr
  102. | ArrayInitIndexExpr
  103. | ArrayInitLoopExpr
  104. | ArraySubscriptExpr
  105. | ArrayTypeTraitExpr
  106. | AsTypeExpr
  107. | AtomicExpr
  108. | BinaryOperator
  109. | CompoundAssignOperator
  110. | BlockExpr
  111. | CXXBindTemporaryExpr
  112. | CXXBoolLiteralExpr
  113. | CXXConstructExpr
  114. | CXXTemporaryObjectExpr
  115. | CXXDefaultArgExpr
  116. | CXXDefaultInitExpr
  117. | CXXDeleteExpr
  118. | CXXDependentScopeMemberExpr
  119. | CXXFoldExpr
  120. | CXXInheritedCtorInitExpr
  121. | CXXNewExpr
  122. | CXXNoexceptExpr
  123. | CXXNullPtrLiteralExpr
  124. | CXXPseudoDestructorExpr
  125. | CXXRewrittenBinaryOperator
  126. | CXXScalarValueInitExpr
  127. | CXXStdInitializerListExpr
  128. | CXXThisExpr
  129. | CXXThrowExpr
  130. | CXXTypeidExpr
  131. | CXXUnresolvedConstructExpr
  132. | CXXUuidofExpr
  133. | CallExpr
  134. | CUDAKernelCallExpr
  135. | CXXMemberCallExpr
  136. | CXXOperatorCallExpr
  137. | UserDefinedLiteral
  138. | BuiltinBitCastExpr
  139. | CStyleCastExpr
  140. | CXXFunctionalCastExpr
  141. | CXXAddrspaceCastExpr
  142. | CXXConstCastExpr
  143. | CXXDynamicCastExpr
  144. | CXXReinterpretCastExpr
  145. | CXXStaticCastExpr
  146. | ObjCBridgedCastExpr
  147. | ImplicitCastExpr
  148. | CharacterLiteral
  149. | ChooseExpr
  150. | CompoundLiteralExpr
  151. | ConceptSpecializationExpr
  152. | ConvertVectorExpr
  153. | CoawaitExpr
  154. | CoyieldExpr
  155. | DeclRefExpr
  156. | DependentCoawaitExpr
  157. | DependentScopeDeclRefExpr
  158. | DesignatedInitExpr
  159. | DesignatedInitUpdateExpr
  160. | ExpressionTraitExpr
  161. | ExtVectorElementExpr
  162. | FixedPointLiteral
  163. | FloatingLiteral
  164. | ConstantExpr
  165. | ExprWithCleanups
  166. | FunctionParmPackExpr
  167. | GNUNullExpr
  168. | GenericSelectionExpr
  169. | ImaginaryLiteral
  170. | ImplicitValueInitExpr
  171. | InitListExpr
  172. | IntegerLiteral
  173. | LambdaExpr
  174. | MSPropertyRefExpr
  175. | MSPropertySubscriptExpr
  176. | MaterializeTemporaryExpr
  177. | MatrixSubscriptExpr
  178. | MemberExpr
  179. | NoInitExpr
  180. | OMPArraySectionExpr
  181. | OMPArrayShapingExpr
  182. | OMPIteratorExpr
  183. | ObjCArrayLiteral
  184. | ObjCAvailabilityCheckExpr
  185. | ObjCBoolLiteralExpr
  186. | ObjCBoxedExpr
  187. | ObjCDictionaryLiteral
  188. | ObjCEncodeExpr
  189. | ObjCIndirectCopyRestoreExpr
  190. | ObjCIsaExpr
  191. | ObjCIvarRefExpr
  192. | ObjCMessageExpr
  193. | ObjCPropertyRefExpr
  194. | ObjCProtocolExpr
  195. | ObjCSelectorExpr
  196. | ObjCStringLiteral
  197. | ObjCSubscriptRefExpr
  198. | OffsetOfExpr
  199. | OpaqueValueExpr
  200. | UnresolvedLookupExpr
  201. | UnresolvedMemberExpr
  202. | PackExpansionExpr
  203. | ParenExpr
  204. | ParenListExpr
  205. | PredefinedExpr
  206. | PseudoObjectExpr
  207. | RecoveryExpr
  208. | RequiresExpr
  209. | SYCLUniqueStableNameExpr
  210. | ShuffleVectorExpr
  211. | SizeOfPackExpr
  212. | SourceLocExpr
  213. | StmtExpr
  214. | StringLiteral
  215. | SubstNonTypeTemplateParmExpr
  216. | SubstNonTypeTemplateParmPackExpr
  217. | TypeTraitExpr
  218. | TypoExpr
  219. | UnaryExprOrTypeTraitExpr
  220. | UnaryOperator
  221. | VAArgExpr
  222. | LabelStmt
  223. | WhileStmt
  224. | UnknownStmt
type clang_ext_stmtkind__arity = [
  1. | `Zero
]
and clang_ext_stmtkind__structure = [
  1. | `Name of [ `Constr of ((((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))))) * ((((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))))) ]
]
and clang_ext_stmtkind__kinds = [
  1. | `Constr
]
and clang_ext_stmtkind__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_stmtkind : clang_ext_stmtkind Refl.refl
val ext_stmt_get_kind : cxcursor -> clang_ext_stmtkind
type clang_ext_typekind =
  1. | InvalidType
  2. | Adjusted
  3. | Decayed
  4. | ConstantArray
  5. | DependentSizedArray
  6. | IncompleteArray
  7. | VariableArray
  8. | Atomic
  9. | Attributed
  10. | BitInt
  11. | BlockPointer
  12. | Builtin
  13. | Complex
  14. | Decltype
  15. | Auto
  16. | DeducedTemplateSpecialization
  17. | DependentAddressSpace
  18. | DependentBitInt
  19. | DependentName
  20. | DependentSizedExtVector
  21. | DependentTemplateSpecialization
  22. | DependentVector
  23. | Elaborated
  24. | FunctionNoProto
  25. | FunctionProto
  26. | InjectedClassName
  27. | MacroQualified
  28. | ConstantMatrix
  29. | DependentSizedMatrix
  30. | MemberPointer
  31. | ObjCObjectPointer
  32. | ObjCObject
  33. | ObjCInterface
  34. | ObjCTypeParam
  35. | PackExpansion
  36. | Paren
  37. | Pipe
  38. | Pointer
  39. | LValueReference
  40. | RValueReference
  41. | SubstTemplateTypeParmPack
  42. | SubstTemplateTypeParm
  43. | Enum
  44. | Record
  45. | TemplateSpecialization
  46. | TemplateTypeParm
  47. | TypeOfExpr
  48. | TypeOf
  49. | Typedef
  50. | UnaryTransform
  51. | UnresolvedUsing
  52. | Using
  53. | Vector
  54. | ExtVector
  55. | UnknownType
type clang_ext_typekind__arity = [
  1. | `Zero
]
and clang_ext_typekind__structure = [
  1. | `Name of [ `Constr of ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) ]
]
and clang_ext_typekind__kinds = [
  1. | `Constr
]
and clang_ext_typekind__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_typekind : clang_ext_typekind Refl.refl
val ext_type_get_kind : cxtype -> clang_ext_typekind
val ext_get_type_kind : cxtype -> clang_ext_typekind
val ext_get_inner_type : cxtype -> cxtype
val ext_declarator_decl_get_size_expr : cxcursor -> cxcursor
val ext_variable_array_type_get_size_expr : cxtype -> cxcursor
val ext_character_literal_get_character_kind : cxcursor -> clang_ext_stringkind
val ext_character_literal_get_value : cxcursor -> int
type clang_ext_unaryexpr =
  1. | SizeOf
  2. | AlignOf
  3. | VecStep
  4. | OpenMPRequiredSimdAlign
  5. | PreferredAlignOf
type clang_ext_unaryexpr__arity = [
  1. | `Zero
]
and clang_ext_unaryexpr__structure = [
  1. | `Name of [ `Constr of (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) ]
]
and clang_ext_unaryexpr__kinds = [
  1. | `Constr
]
and clang_ext_unaryexpr__gadt = unit
type Refl.refl +=
  1. | Refl_clang_ext_unaryexpr : clang_ext_unaryexpr Refl.refl
val ext_unary_expr_get_kind : cxcursor -> clang_ext_unaryexpr
val ext_unary_expr_is_argument_type : cxcursor -> bool
type clang_ext_typeloc
val ext_unary_expr_get_argument_type_loc : cxcursor -> clang_ext_typeloc
val ext_type_get_named_type : cxtype -> cxtype
type clang_ext_attrkind =
  1. | NoAttr
  2. | AddressSpace
  3. | ArmMveStrictPolymorphism
  4. | BTFTypeTag
  5. | CmseNSCall
  6. | NoDeref
  7. | ObjCGC
  8. | ObjCInertUnsafeUnretained
  9. | ObjCKindOf
  10. | OpenCLConstantAddressSpace
  11. | OpenCLGenericAddressSpace
  12. | OpenCLGlobalAddressSpace
  13. | OpenCLGlobalDeviceAddressSpace
  14. | OpenCLGlobalHostAddressSpace
  15. | OpenCLLocalAddressSpace
  16. | OpenCLPrivateAddressSpace
  17. | Ptr32
  18. | Ptr64
  19. | SPtr
  20. | TypeNonNull
  21. | TypeNullUnspecified
  22. | TypeNullable
  23. | TypeNullableResult
  24. | UPtr
  25. | FallThrough
  26. | Likely
  27. | MustTail
  28. | OpenCLUnrollHint
  29. | Suppress
  30. | Unlikely
  31. | NoMerge
  32. | AArch64VectorPcs
  33. | AcquireHandle
  34. | AnyX86NoCfCheck
  35. | CDecl
  36. | FastCall
  37. | IntelOclBicc
  38. | LifetimeBound
  39. | MSABI
  40. | NSReturnsRetained
  41. | ObjCOwnership
  42. | Pascal
  43. | Pcs
  44. | PreserveAll
  45. | PreserveMost
  46. | RegCall
  47. | StdCall
  48. | SwiftAsyncCall
  49. | SwiftCall
  50. | SysVABI
  51. | ThisCall
  52. | VectorCall
  53. | SwiftAsyncContext
  54. | SwiftContext
  55. | SwiftErrorResult
  56. | SwiftIndirectResult
  57. | Annotate
  58. | CFConsumed
  59. | CarriesDependency
  60. | NSConsumed
  61. | NonNull
  62. | OSConsumed
  63. | PassObjectSize
  64. | ReleaseHandle
  65. | UseHandle
  66. | AMDGPUFlatWorkGroupSize
  67. | AMDGPUNumSGPR
  68. | AMDGPUNumVGPR
  69. | AMDGPUWavesPerEU
  70. | ARMInterrupt
  71. | AVRInterrupt
  72. | AVRSignal
  73. | AcquireCapability
  74. | AcquiredAfter
  75. | AcquiredBefore
  76. | AlignMac68k
  77. | AlignNatural
  78. | Aligned
  79. | AllocAlign
  80. | AllocSize
  81. | AlwaysDestroy
  82. | AlwaysInline
  83. | AnalyzerNoReturn
  84. | AnyX86Interrupt
  85. | AnyX86NoCallerSavedRegisters
  86. | ArcWeakrefUnavailable
  87. | ArgumentWithTypeTag
  88. | ArmBuiltinAlias
  89. | Artificial
  90. | AsmLabel
  91. | AssertCapability
  92. | AssertExclusiveLock
  93. | AssertSharedLock
  94. | AssumeAligned
  95. | Assumption
  96. | Availability
  97. | BPFPreserveAccessIndex
  98. | BTFDeclTag
  99. | Blocks
  100. | Builtin
  101. | C11NoReturn
  102. | CFAuditedTransfer
  103. | CFGuard
  104. | CFICanonicalJumpTable
  105. | CFReturnsNotRetained
  106. | CFReturnsRetained
  107. | CFUnknownTransfer
  108. | CPUDispatch
  109. | CPUSpecific
  110. | CUDAConstant
  111. | CUDADevice
  112. | CUDADeviceBuiltinSurfaceType
  113. | CUDADeviceBuiltinTextureType
  114. | CUDAGlobal
  115. | CUDAHost
  116. | CUDAInvalidTarget
  117. | CUDALaunchBounds
  118. | CUDAShared
  119. | CXX11NoReturn
  120. | CallableWhen
  121. | Callback
  122. | Capability
  123. | CapturedRecord
  124. | Cleanup
  125. | CmseNSEntry
  126. | CodeSeg
  127. | Cold
  128. | Common
  129. | Const
  130. | ConstInit
  131. | Constructor
  132. | Consumable
  133. | ConsumableAutoCast
  134. | ConsumableSetOnRead
  135. | Convergent
  136. | DLLExport
  137. | DLLExportStaticLocal
  138. | DLLImport
  139. | DLLImportStaticLocal
  140. | Deprecated
  141. | Destructor
  142. | DiagnoseAsBuiltin
  143. | DiagnoseIf
  144. | DisableSanitizerInstrumentation
  145. | DisableTailCalls
  146. | EmptyBases
  147. | EnableIf
  148. | EnforceTCB
  149. | EnforceTCBLeaf
  150. | EnumExtensibility
  151. | Error
  152. | ExcludeFromExplicitInstantiation
  153. | ExclusiveTrylockFunction
  154. | ExternalSourceSymbol
  155. | Final
  156. | FlagEnum
  157. | Flatten
  158. | Format
  159. | FormatArg
  160. | GNUInline
  161. | GuardedBy
  162. | GuardedVar
  163. | HIPManaged
  164. | Hot
  165. | IBAction
  166. | IBOutlet
  167. | IBOutletCollection
  168. | InitPriority
  169. | InternalLinkage
  170. | LTOVisibilityPublic
  171. | LayoutVersion
  172. | Leaf
  173. | LockReturned
  174. | LocksExcluded
  175. | M68kInterrupt
  176. | MIGServerRoutine
  177. | MSAllocator
  178. | MSInheritance
  179. | MSNoVTable
  180. | MSP430Interrupt
  181. | MSStruct
  182. | MSVtorDisp
  183. | MaxFieldAlignment
  184. | MayAlias
  185. | MicroMips
  186. | MinSize
  187. | MinVectorWidth
  188. | Mips16
  189. | MipsInterrupt
  190. | MipsLongCall
  191. | MipsShortCall
  192. | NSConsumesSelf
  193. | NSErrorDomain
  194. | NSReturnsAutoreleased
  195. | NSReturnsNotRetained
  196. | Naked
  197. | NoAlias
  198. | NoCommon
  199. | NoDebug
  200. | NoDestroy
  201. | NoDuplicate
  202. | NoInline
  203. | NoInstrumentFunction
  204. | NoMicroMips
  205. | NoMips16
  206. | NoProfileFunction
  207. | NoReturn
  208. | NoSanitize
  209. | NoSpeculativeLoadHardening
  210. | NoSplitStack
  211. | NoStackProtector
  212. | NoThreadSafetyAnalysis
  213. | NoThrow
  214. | NoUniqueAddress
  215. | NotTailCalled
  216. | OMPAllocateDecl
  217. | OMPCaptureNoInit
  218. | OMPDeclareTargetDecl
  219. | OMPDeclareVariant
  220. | OMPThreadPrivateDecl
  221. | OSConsumesThis
  222. | OSReturnsNotRetained
  223. | OSReturnsRetained
  224. | OSReturnsRetainedOnNonZero
  225. | OSReturnsRetainedOnZero
  226. | ObjCBridge
  227. | ObjCBridgeMutable
  228. | ObjCBridgeRelated
  229. | ObjCException
  230. | ObjCExplicitProtocolImpl
  231. | ObjCExternallyRetained
  232. | ObjCIndependentClass
  233. | ObjCMethodFamily
  234. | ObjCNSObject
  235. | ObjCPreciseLifetime
  236. | ObjCRequiresPropertyDefs
  237. | ObjCRequiresSuper
  238. | ObjCReturnsInnerPointer
  239. | ObjCRootClass
  240. | ObjCSubclassingRestricted
  241. | OpenCLIntelReqdSubGroupSize
  242. | OpenCLKernel
  243. | OptimizeNone
  244. | Override
  245. | Owner
  246. | Ownership
  247. | Packed
  248. | ParamTypestate
  249. | PatchableFunctionEntry
  250. | Pointer
  251. | PragmaClangBSSSection
  252. | PragmaClangDataSection
  253. | PragmaClangRelroSection
  254. | PragmaClangRodataSection
  255. | PragmaClangTextSection
  256. | PreferredName
  257. | PtGuardedBy
  258. | PtGuardedVar
  259. | Pure
  260. | RISCVInterrupt
  261. | Reinitializes
  262. | ReleaseCapability
  263. | ReqdWorkGroupSize
  264. | RequiresCapability
  265. | Restrict
  266. | Retain
  267. | ReturnTypestate
  268. | ReturnsNonNull
  269. | ReturnsTwice
  270. | SYCLKernel
  271. | SYCLSpecialClass
  272. | ScopedLockable
  273. | Section
  274. | SelectAny
  275. | Sentinel
  276. | SetTypestate
  277. | SharedTrylockFunction
  278. | SpeculativeLoadHardening
  279. | StandaloneDebug
  280. | StrictFP
  281. | SwiftAsync
  282. | SwiftAsyncError
  283. | SwiftAsyncName
  284. | SwiftAttr
  285. | SwiftBridge
  286. | SwiftBridgedTypedef
  287. | SwiftError
  288. | SwiftName
  289. | SwiftNewType
  290. | SwiftPrivate
  291. | TLSModel
  292. | Target
  293. | TargetClones
  294. | TestTypestate
  295. | TransparentUnion
  296. | TrivialABI
  297. | TryAcquireCapability
  298. | TypeTagForDatatype
  299. | TypeVisibility
  300. | Unavailable
  301. | Uninitialized
  302. | Unused
  303. | Used
  304. | UsingIfExists
  305. | Uuid
  306. | VecReturn
  307. | VecTypeHint
  308. | Visibility
  309. | WarnUnused
  310. | WarnUnusedResult
  311. | Weak
  312. | WeakImport
  313. | WeakRef
  314. | WebAssemblyExportName
  315. | WebAssemblyImportModule
  316. | WebAssemblyImportName
  317. | WorkGroupSizeHint
  318. | X86ForceAlignArgPointer
  319. | XRayInstrument
  320. | XRayLogArgs
  321. | AbiTag
  322. | Alias
  323. | AlignValue
  324. | BuiltinAlias
  325. | CalledOnce
  326. | IFunc
  327. | InitSeg
  328. | LoaderUninitialized
  329. | LoopHint
  330. | Mode
  331. | NoBuiltin
  332. | NoEscape
  333. | OMPCaptureKind
  334. | OMPDeclareSimdDecl
  335. | OMPReferencedVar
  336. | ObjCBoxable
  337. | ObjCClassStub
  338. | ObjCDesignatedInitializer
  339. | ObjCDirect
  340. | ObjCDirectMembers
  341. | ObjCNonLazyClass
  342. | ObjCNonRuntimeProtocol
  343. | ObjCRuntimeName
  344. | ObjCRuntimeVisible
  345. | OpenCLAccess
  346. | Overloadable
  347. | RenderScriptKernel
  348. | SwiftObjCMembers
  349. | Thread
type clang_ext_attrkind__arity = [
  1. | `Zero
]
and clang_ext_attrkind__structure = [
  1. | `Name of [ `Constr of (((((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))))) * ((((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))) * (((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)))) * ((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))))))) * (((((((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref)) * ((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * ([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref))) * (((([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * (([ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref * [ `Constructor of [ `Tuple of unit ] * unit ] Stdcompat.ref) * [ `Constructor of [ `Tuple of unit ] * unit ]