curry-frontend merge requestshttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests2022-11-22T10:21:12Zhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/50Remove some unused imports2022-11-22T10:21:12ZFredrik WieczerkowskiRemove some unused importsSome minor cleanup.Some minor cleanup.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/53Upgrade Stackage snapshot to LTS 18.272022-07-13T12:01:27ZFredrik WieczerkowskiUpgrade Stackage snapshot to LTS 18.27This upgrades the Stackage snapshot from LTS 18.14 to LTS 18.27. Doesn't change anything else, the GHC version stays at 8.10.7 and the build still passes.This upgrades the Stackage snapshot from LTS 18.14 to LTS 18.27. Doesn't change anything else, the GHC version stays at 8.10.7 and the build still passes.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/24Clean up the .cabal file2020-10-23T16:24:02ZJan-Hendrik MatthesClean up the .cabal fileThis merge request cleans up the `.cabal` file and fixes some errors with more recent Cabal versions.This merge request cleans up the `.cabal` file and fixes some errors with more recent Cabal versions.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/25Add library target and specify Git-dependency on curry-base2020-10-23T16:21:10ZFredrik WieczerkowskiAdd library target and specify Git-dependency on curry-base### Fixes #88 and #89.
This PR splits the frontend into a library and an executable target, thereby making the frontend easier to embed into other applications (such as `curry-language-server`).
Additionally, it adds a `cabal.project` ...### Fixes #88 and #89.
This PR splits the frontend into a library and an executable target, thereby making the frontend easier to embed into other applications (such as `curry-language-server`).
Additionally, it adds a `cabal.project` file specifying `curry-base` as a source repository to make the build more reproducible.
More details can be found in the accompanying issues.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/33Fix: Add unqualified type constructor lookup as fallback in WarnCheck2020-10-21T11:05:00ZFredrik WieczerkowskiFix: Add unqualified type constructor lookup as fallback in WarnCheckUnfortunately, #85 seems to be not quite resolved by !30, since compiling KiCS2 (with PAKCS) yields the following error message:
```
[64 of 64] Compiling Compile ( Compile.curry, .curry/Compile.fcy )
pakcs-frontend: Internal er...Unfortunately, #85 seems to be not quite resolved by !30, since compiling KiCS2 (with PAKCS) yields the following error message:
```
[64 of 64] Compiling Compile ( Compile.curry, .curry/Compile.fcy )
pakcs-frontend: Internal error: Checks.WarnCheck.getTyCons: QualIdent {qidSpanInfo = SpanInfo {srcSpan = Span {file = ".curry/FlatCurry/Annotated/Types.icurry", start = Position {file = ".curry/FlatCurry/Annotated/Types.icurry", line = 59, column = 6}, end = Position {file = ".curry/FlatCurry/Annotated/Types.icurry", line = 59, column = 29}}, srcInfoPoints = [Span {file = ".curry/FlatCurry/Annotated/Types.icurry", start = Position {file = ".curry/FlatCurry/Annotated/Types.icurry", line = 59, column = 6}, end = Position {file = ".curry/FlatCurry/Annotated/Types.icurry", line = 59, column = 29}}]}, qidModule = Just (ModuleIdent {midSpanInfo = SpanInfo {srcSpan = Span {file = ".curry/FlatCurry/Annotated/Types.icurry", start = Position {file = ".curry/FlatCurry/Annotated/Types.icurry", line = 59, column = 6}, end = Position {file = ".curry/FlatCurry/Annotated/Types.icurry", line = 59, column = 21}}, srcInfoPoints = []}, midQualifiers = ["FlatCurry","Types"]}), qidIdent = Ident {idSpanInfo = SpanInfo {srcSpan = Span {file = ".curry/FlatCurry/Annotated/Types.icurry", start = Position {file = ".curry/FlatCurry/Annotated/Types.icurry", line = 59, column = 22}, end = Position {file = ".curry/FlatCurry/Annotated/Types.icurry", line = 59, column = 29}}, srcInfoPoints = []}, idName = "TypeExpr", idUnique = 0}} []
TopEnv ...
```
As a quick fix, this merge request adds back the old, unqualified type constructor lookup in the WarnCheck as a fallback solution, until we have something better:
```haskell
csResult = getTyCons' (qualLookupTypeInfo tc tcEnv)
<|> getTyCons' (qualLookupTypeInfo tc' tcEnv)
<|> getTyCons' (lookupTypeInfo (unqualify tc) tcEnv) -- Fall back on unqualified lookup if qualified doesn't work
```https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/18Explicitly quantify free type variables of type signatures in FlatCurry2020-01-31T12:06:28ZJan-Hendrik MatthesExplicitly quantify free type variables of type signatures in FlatCurryWith this merge request the types of function definitions are now closed in the FlatCurry representation. This means that all type variables are explicitly universally quantified in the type.
Furthermore all types are now in prenex fo...With this merge request the types of function definitions are now closed in the FlatCurry representation. This means that all type variables are explicitly universally quantified in the type.
Furthermore all types are now in prenex form.
Closes #67https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/7WIP: Warn for redundant context2019-03-20T15:25:51ZKai ProttWIP: Warn for redundant contexte.g. in `(Eq a, Ord a) => ...` the `Eq a` is unnecessarye.g. in `(Eq a, Ord a) => ...` the `Eq a` is unnecessaryhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/5Typed flat curry2018-07-11T08:47:51ZKai ProttTyped flat curryFinn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/1Existentials2017-10-18T12:55:20ZFinn TeegenExistentialsAdds a new syntax extension named `ExistentialQuantification` that allows the use of existential quantification in data type or newtype declarations similar to Haskell, e.g.:
```
data Foo = forall a . Bar a
```Adds a new syntax extension named `ExistentialQuantification` that allows the use of existential quantification in data type or newtype declarations similar to Haskell, e.g.:
```
data Foo = forall a . Bar a
```https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/merge_requests/4Case mode2017-06-01T11:37:58ZKai ProttCase modeAdded command-line options to select a case mode and to enable/disable warnings for wrong case modes. Also added a case mode check to the WarnCheck and some test cases.Added command-line options to select a case mode and to enable/disable warnings for wrong case modes. Also added a case mode check to the WarnCheck and some test cases.