Skip to content

Remove support for existential quantified type variables in data type declarations

Jan-Hendrik Matthes requested to merge remove-exist-quant into master

This merge request removes support for existential quantified type variables in data type declarations.

Existential quantified type variables are currently not working correctly. So the support will be removed in favor of a cleaner compiler implementation and the upcoming support for arbitrary-rank types.

The recognized syntax of Curry will change as follows (only the relevant parts are listed):

\begin{aligned}
\cdots
\end{aligned}
\begin{aligned}
\textit{ConstrDecl} &::=\textit{DataConstr}~\textit{SimpleTypeExpr}_{1}\ldots\textit{SimpleTypeExpr}_{n} &&(n\geq 0)\\
                    &\phantom{::}\mid\phantom{!)}\textit{TypeAppExpr}~\textit{ConOp}~\textit{TypeAppExpr}\\
                    &\phantom{::}\mid\phantom{!)}\textit{DataConstr}~\texttt{\{}~\textit{FieldDecl}_{1}~\texttt{,}\ldots\texttt{,}~\textit{FieldDecl}_{n}~\texttt{\}} &&(n\geq 0)\\
\textit{ExistVars}  &::=\dots &&(\text{removed})\\
\textit{ConDecl}    &::=\dots &&(\text{removed})
\end{aligned}
\begin{aligned}
\cdots
\end{aligned}
Edited by Jan-Hendrik Matthes

Merge request reports