The difference w.r.t.\ \Rule{AbsInf++} is that the typing of the body
instead of the simpler \Rule{AbsInf+}. The difference w.r.t.\ \Rule{AbsInf+} is that the typing of the body
is made under the hypthesis $x:s\setminus\bigvee_{s'\in\psi(x)}s'$,
that is, the domain of the function minus all the input types
determined by the $\psi$-analysis. This yields an even better refinement
of the function type that make a difference for instance with Code 3
in Table~\ref{tab:implem}. The rule above is for a single arrow type:
the extension for multiple arrows is similar to the one for the
simpler case. \beppe{is it the right code Kim?}
of the function type that makes a difference for instance with the inference for the function \code{xor\_} (Code 3
in Table~\ref{tab:implem}): the old rule would have returned a less precise type. The rule above is defined for functions annotated by a single arrow type:
the extension to annotations with intersections of multiple arrows is similar to the one we did in the