Define the signature of a method consisting of its name, its arguments, return type, location and whether its an instance method.

`type param_type````=` `{`

`name : InferIR.Mangled.t;`
`typ : InferIR.Typ.t;`
`is_pointer_to_const : bool;`
`is_value : bool;`
`annot : InferIR.Annot.Item.t;`

`}```
`type t````=` `{`

`name : InferIR.Typ.Procname.t;`
`access : InferGenerated.Clang_ast_t.access_specifier;`
`class_param : param_type option;`
`params : param_type list;`
`ret_type : InferIR.Typ.t * InferIR.Annot.Item.t;`
`attributes : InferGenerated.Clang_ast_t.attribute list;`
`loc : InferGenerated.Clang_ast_t.source_range;`
`method_kind : InferIR.ProcAttributes.clang_method_kind;`
`is_cpp_virtual : bool;`
`is_cpp_nothrow : bool;`
`pointer_to_parent : InferGenerated.Clang_ast_t.pointer option;`
`pointer_to_property_opt : InferGenerated.Clang_ast_t.pointer option;`
`return_param_typ : InferIR.Typ.t option;`

`}```
`val is_getter : t ‑> bool`
`val is_setter : t ‑> bool`
`val mk : InferIR.Typ.Procname.t ‑> param_type option ‑> param_type list ‑> (InferIR.Typ.t * InferIR.Annot.Item.t) ‑> InferGenerated.Clang_ast_t.attribute list ‑> InferGenerated.Clang_ast_t.source_range ‑> InferIR.ProcAttributes.clang_method_kind ‑> ?⁠is_cpp_virtual:bool ‑> ?⁠is_cpp_nothrow:bool ‑> InferGenerated.Clang_ast_t.pointer option ‑> InferGenerated.Clang_ast_t.pointer option ‑> InferIR.Typ.t option ‑> InferGenerated.Clang_ast_t.access_specifier ‑> t`
`val pp : Format.formatter ‑> t ‑> unit`
`val mk_param_type : ?⁠is_value:bool ‑> ?⁠is_pointer_to_const:bool ‑> ?⁠annot:InferIR.Annot.Item.t ‑> InferIR.Mangled.t ‑> InferIR.Typ.t ‑> param_type`