Method signature with annotations.

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

`ret : InferIR.Annot.Item.t * InferIR.Typ.t;` | (** Annotated return type. *)
`params : (InferIR.Mangled.t * InferIR.Annot.Item.t * InferIR.Typ.t) list;` | (** Annotated parameters. *)

`}```
`include sig ... end`
`val compare : t ‑> t ‑> int`
`type annotation````=`

`|` `Nullable`
`|` `Present`

``
`include sig ... end`
`val compare_annotation : annotation ‑> annotation ‑> int`
`val param_has_annot : (InferIR.Annot.Item.t ‑> bool) ‑> InferIR.Pvar.t ‑> t ‑> bool`

Check if the given parameter has an annotation in the given signature

`val mark : InferIR.Typ.Procname.t ‑> annotation ‑> t ‑> (bool * bool list) ‑> t`

Mark the annotated signature with the given annotation map.

`val mark_return : annotation ‑> t ‑> t`

Mark the return of the annotated signature with the given annotation.

`val get : InferIR.ProcAttributes.t ‑> t`

Get a method signature with annotations from a proc_attributes.

`val mk_ia : annotation ‑> InferIR.Annot.Item.t ‑> InferIR.Annot.Item.t`

Add the annotation to the item_annotation.

`val pp : InferIR.Typ.Procname.t ‑> Format.formatter ‑> t ‑> unit`

Pretty print a method signature with annotations.