This module handles the translation of the variable self which is challenging because self is used both as a variable in instance method calls and also as a type in class method calls.

`exception` `SelfClassException of` `{`

`class_name : InferIR.Typ.Name.t;`
`position : InferBase.Logging.ocaml_pos;`
`source_range : InferGenerated.Clang_ast_t.source_range;`

`}```
`val add_self_parameter_for_super_instance : InferGenerated.Clang_ast_t.stmt_info ‑> CContext.t ‑> InferIR.Typ.Procname.t ‑> InferBase.Location.t ‑> InferGenerated.Clang_ast_t.obj_c_message_expr_info ‑> trans_result option`
`val is_var_self : InferIR.Pvar.t ‑> bool ‑> bool`