`module CProcname : sig ... end`

Processes types and record declarations by adding them to the tenv

`val get_record_typename : ?⁠tenv:InferIR.Tenv.t ‑> InferGenerated.Clang_ast_t.decl ‑> InferIR.Typ.Name.t`
`val add_types_from_decl_to_tenv : InferIR.Tenv.t ‑> InferGenerated.Clang_ast_t.decl ‑> InferIR.Typ.desc`
`val add_predefined_types : InferIR.Tenv.t ‑> unit`

Add the predefined types objc_class which is a struct, and Class, which is a pointer to objc_class.

`val qual_type_to_sil_type : InferIR.Tenv.t ‑> InferGenerated.Clang_ast_t.qual_type ‑> InferIR.Typ.t`
`val class_from_pointer_type : InferIR.Tenv.t ‑> InferGenerated.Clang_ast_t.qual_type ‑> InferIR.Typ.Name.t`
`val get_type_from_expr_info : InferGenerated.Clang_ast_t.expr_info ‑> InferIR.Tenv.t ‑> InferIR.Typ.t`
`val method_signature_of_decl : InferIR.Tenv.t ‑> InferGenerated.Clang_ast_t.decl ‑> ?⁠block_return_type:InferGenerated.Clang_ast_t.qual_type ‑> InferIR.Typ.Procname.t ‑> CMethodSignature.t`
`val method_signature_body_of_decl : InferIR.Tenv.t ‑> InferGenerated.Clang_ast_t.decl ‑> ?⁠block_return_type:InferGenerated.Clang_ast_t.qual_type ‑> InferIR.Typ.Procname.t ‑> CMethodSignature.t * InferGenerated.Clang_ast_t.stmt option * [> `CXXConstructorInit of InferGenerated.Clang_ast_t.cxx_ctor_initializer ] list`
`val should_add_return_param : InferIR.Typ.typ ‑> is_objc_method:bool ‑> bool`