However, a function with a type $((\True\to\False) land (\False\to\True))\lor((\True\to\True)\land(\False\to\False))$ could definitively give a result in $\True$. The correct result should be \Bool.

However, a function with a type $((\True\to\False)\land

(\False\to\True))\lor((\True\to\True)\land(\False\to\False))$ may

definitively yield a result in $\True$ or in $\False$. The correct result should be \Bool.

The proof in Coq of the soundness of this definition given in the

...

...

@@ -314,7 +318,7 @@ potential dynamic behavior of terms in the way done with occurrence

typing will need to decide \emph{which} terms the type system should

take note of, and what equations it will use over those terms. For

example, if we have the expression

\texttt{(f\ x) $\in$ (1,\ 1)}, should that refine the

\texttt{(f\ x) $\in$ (1,1)}, should that refine the

type of \texttt{(g\ x)}? Possible questions to ask here are: is

\texttt{f} pure? Is \texttt{f} syntactically equal to \texttt{g}? Can we

prove that \texttt{f} and \texttt{g} are equivalent?

...

...

@@ -339,9 +343,10 @@ paper clearer.

\begin{answer}

Beppe: say that our approach in some sense subsumes the two others. Add

a part of related work discussing about pure expressions. Use (not

verbatim) the rebuttal of POPL. Thanks for the insight

This is a very nice insight. We reproduced it (giving credits) in the

section on related work, which now ends with a long discussion on the

design space w.r.t. side effects and on our future plans to cope with

the presence of impure expressions. (lines ??-??)

\end{answer}

...

...

@@ -495,7 +500,7 @@ type preservation). We rewrote the sentence to be more clear.

interpretation of) \any. We added an explaination (see lines

???-???). In short \texttt{Undef} is a special singleton type

whose intepretation contains only a the

constant \texttt{undef} which is not in D.

constant \texttt{undef} which is not in $\Domain$.