curry-base merge requestshttps://git.ps.informatik.uni-kiel.de/curry/curry-base/-/merge_requests2020-10-20T18:01:53Zhttps://git.ps.informatik.uni-kiel.de/curry/curry-base/-/merge_requests/9Add support for higher-rank polymorphism2020-10-20T18:01:53ZJan-Hendrik MatthesAdd support for higher-rank polymorphismThis merge request adds support for higher-rank polymorphism to the parser. Furthermore a new language extension `RankNTypes` is introduced. The representation of AbstractCurry is also adapted to support higher-rank polymorphism.
The ...This merge request adds support for higher-rank polymorphism to the parser. Furthermore a new language extension `RankNTypes` is introduced. The representation of AbstractCurry is also adapted to support higher-rank polymorphism.
The recognized syntax of Curry will change as follows (only the relevant parts are listed):
```math
\begin{aligned}
\cdots
\end{aligned}
```
```math
\begin{aligned}
\textit{ConstrDecl} &::=\dots\\
&\phantom{::}\mid\phantom{!)}\textit{AppTypeExpr}~\textit{ConOp}~\textit{AppTypeExpr}\\
&\phantom{::}\mid\phantom{!)}\dots\\
\textit{ForallVarID} &::=\textit{Ident}\\
\textit{ForallVars} &::=\texttt{forall}~\textit{ForallVarID}_{1}\ldots\textit{ForallVarID}_{n}~\texttt{.} &&(n\geq 1)\\
\textit{TypeExpr} &::=\{\textit{ForallVars}\}~[\textit{Context}~\texttt{=>}]~\textit{FuncTypeExpr}\\
\textit{FuncTypeExpr} &::=\textit{AppTypeExpr}~[\texttt{->}~\textit{TypeExpr}]\\
\textit{AppTypeExpr} &::=[\textit{AppTypeExpr}]~\textit{SimpleTypeExpr}\\
\textit{Signature} &::=\textit{Functions}~\texttt{::}~\textit{TypeExpr}\\
\textit{Expr} &::=\textit{InfixExpr}~\texttt{::}~\textit{TypeExpr}\\
&\phantom{::}\mid\phantom{=}\dots
\end{aligned}
```
```math
\begin{aligned}
\cdots
\end{aligned}
```
```math
\begin{aligned}
\textit{QualTypeExpr} &::=\dots &&(\text{removed})\\
\textit{TypeAppExpr} &::=\dots &&(\text{removed})
\end{aligned}
```
```math
\begin{aligned}
\cdots
\end{aligned}
```Jan-Hendrik MatthesJan-Hendrik Mattheshttps://git.ps.informatik.uni-kiel.de/curry/curry-base/-/merge_requests/13Add support for the `ExplicitForAll` language extension2019-11-19T14:06:02ZJan-Hendrik MatthesAdd support for the `ExplicitForAll` language extensionThis merge request adds support for the `ExplicitForAll` language extension so that type variables can be quantified explicitly with the `forall` keyword at the beginning of a type signature.This merge request adds support for the `ExplicitForAll` language extension so that type variables can be quantified explicitly with the `forall` keyword at the beginning of a type signature.https://git.ps.informatik.uni-kiel.de/curry/curry-base/-/merge_requests/7Add SpanInfos to AST2018-11-13T15:04:07ZKai ProttAdd SpanInfos to ASTFinn TeegenFinn Teegen