curry-frontend issueshttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues2019-11-08T17:14:00Zhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/32Show an error when desugaring of language constructs fails2019-11-08T17:14:00ZKai ProttShow an error when desugaring of language constructs failsThe frontend throws an internal error when de-sugaring something to a function that is not in scope.
This can happen if the Prelude is not imported entirely (or not at all via NoImplicitPrelude).The frontend throws an internal error when de-sugaring something to a function that is not in scope.
This can happen if the Prelude is not imported entirely (or not at all via NoImplicitPrelude).https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/53Update `overview.md`2019-11-08T17:14:25ZKai ProttUpdate `overview.md`https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/68Make recompilation robust w.r.t. different compilers2019-11-18T11:09:12ZFinn TeegenMake recompilation robust w.r.t. different compilershttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/73Fix pretty printing of OPTIONS pragma2020-02-12T13:02:23ZFinn TeegenFix pretty printing of OPTIONS pragmaA pragma like `{-# OPTIONS_FRONTEND -ddump-all #-}` is pretty-printed as `{-# OPTIONS _FRONTEND -ddump-all #-}`.A pragma like `{-# OPTIONS_FRONTEND -ddump-all #-}` is pretty-printed as `{-# OPTIONS _FRONTEND -ddump-all #-}`.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/74Drop support for OPTIONS_CYMAKE pragma2019-12-16T21:45:06ZFinn TeegenDrop support for OPTIONS_CYMAKE pragmahttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/76Remove type synonyms from FlatCurry2020-01-21T14:36:17ZFinn TeegenRemove type synonyms from FlatCurryhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/78Add flag options similar to the GHC2020-01-27T16:56:26ZFinn TeegenAdd flag options similar to the GHCThe GHC supports multiple flags using the `-f` options (see https://downloads.haskell.org/ghc/latest/docs/html/users_guide/flags.html). The front end currently only supports `-f` to force recompilation. Since we plan to add several flags...The GHC supports multiple flags using the `-f` options (see https://downloads.haskell.org/ghc/latest/docs/html/users_guide/flags.html). The front end currently only supports `-f` to force recompilation. Since we plan to add several flags (e.g., for translating free variables to `aValue` calls), the `-f` option should be generalized to support multiple flags (similar to the `-O` option).https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/79Remove TypedFlatCurry format2020-01-28T13:49:38ZFinn TeegenRemove TypedFlatCurry formatIn order to reduce the number of different output formats, we should drop the specialized TypedFlatCurry format.In order to reduce the number of different output formats, we should drop the specialized TypedFlatCurry format.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/80Translate user's type annotations correctly2020-01-28T13:51:26ZFinn TeegenTranslate user's type annotations correctlyAlthough currently not relevant due to the lack of support for scoped type variables, a user's type annotation should be transformed correctly during the dictionary translation. Currently, any context gets dropped.Although currently not relevant due to the lack of support for scoped type variables, a user's type annotation should be transformed correctly during the dictionary translation. Currently, any context gets dropped.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/81Parametrize AST with location information2020-01-28T13:53:29ZFinn TeegenParametrize AST with location informationParametrizing the AST with location information via an additional type variable `l` (analogous to the haskell-src-exts) should allow for mapping all location information to `()` and thus reducing the clutter when raw-printing the AST.Parametrizing the AST with location information via an additional type variable `l` (analogous to the haskell-src-exts) should allow for mapping all location information to `()` and thus reducing the clutter when raw-printing the AST.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/82Reduce dependencies between compilation phases2020-01-28T13:56:00ZFinn TeegenReduce dependencies between compilation phasesCurrently, there are various dependencies between compilation phases, e.g., between the case completion and the translation into the IL, i.e., one phase imports the other to use specific functionality from it. We should reduce these depe...Currently, there are various dependencies between compilation phases, e.g., between the case completion and the translation into the IL, i.e., one phase imports the other to use specific functionality from it. We should reduce these dependencies.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/94Remove double errors2020-10-30T12:22:32ZFinn TeegenRemove double errorsConsider the following function.
```
mTestFunction :: Int
mTestFunction = length [unknown]
```
The frontend yields the following errors.
```
Test.curry:2:1-2:32 Error:
Ambiguous type variable _4
in type Prelude.Data _4 => Prel...Consider the following function.
```
mTestFunction :: Int
mTestFunction = length [unknown]
```
The frontend yields the following errors.
```
Test.curry:2:1-2:32 Error:
Ambiguous type variable _4
in type Prelude.Data _4 => Prelude.Int
inferred for equation
mTestFunction = length [unknown]
|
2 | mTestFunction = length [unknown]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Test.curry:2:1-2:32 Error:
Ambiguous type variable _4
in type Prelude.Data _4 => Prelude.Int
inferred for function `mTestFunction'
|
2 | mTestFunction = length [unknown]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ERROR occurred during parsing!
```
As both errors refer to the same issue (even with the same spans), one error should not be raised.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/98Set Haskell case mode as default2020-11-11T20:23:00ZFinn TeegenSet Haskell case mode as defaultFinn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/103Add support for EmptyDataDeriving2020-11-19T16:28:29ZFinn TeegenAdd support for EmptyDataDerivingAs a fix for #101 will most likely result in a general support for empty data type deriving, this feature could also be made available via a language extension.As a fix for #101 will most likely result in a general support for empty data type deriving, this feature could also be made available via a language extension.Fredrik WieczerkowskiFredrik Wieczerkowskihttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/104Do not exceed 80 characters in frontend messages2020-11-19T16:30:10ZFinn TeegenDo not exceed 80 characters in frontend messagesSome error or warning messages exceed the 80 character limit. This behavior results in difficult to read messages in standard terminal windows.Some error or warning messages exceed the 80 character limit. This behavior results in difficult to read messages in standard terminal windows.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/105Add option to disable automatic deriving of Data2020-11-20T10:01:21ZFinn TeegenAdd option to disable automatic deriving of DataFinn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/106Unqualify built-in types2020-11-27T15:27:40ZFinn TeegenUnqualify built-in typesFinn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/107Check which information of instances needs to be considered2020-11-25T11:13:02ZFinn TeegenCheck which information of instances needs to be consideredCurrently, the instance environment contains all implemented instance methods along with their arities. However, it seems as if the information about the arity is no longer needed. Only the interface check seems to compare the arities. F...Currently, the instance environment contains all implemented instance methods along with their arities. However, it seems as if the information about the arity is no longer needed. Only the interface check seems to compare the arities. Furthermore, there is a remark in the deriving check and the deriving transformation stating that the later generated instances have to match the arity entered in the instance environment. It is not clear whether this is still true.
Considering that the implemented methods in an instance do not affect the interface of a module, it might be unnecessary at all to save the implemented methods in the instance environment.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/109Wrong transformation of some type class instances2020-12-01T10:12:08ZFinn TeegenWrong transformation of some type class instancesConsider the following program:
```
data A = A
class B a where
b :: a -> Bool
instance B A where
b = (\_ -> True) ? (\_ -> False)
bs x = [b x, b x]
test = bs A
```
Evaluating `test` results in only two value, namely `[True, Tru...Consider the following program:
```
data A = A
class B a where
b :: a -> Bool
instance B A where
b = (\_ -> True) ? (\_ -> False)
bs x = [b x, b x]
test = bs A
```
Evaluating `test` results in only two value, namely `[True, True]` and `[False, False]` instead of four values. This is a severe bug that is not tackled by the proposal from Wolfgang Lux that is implemented with the augmentation during the dictionary transformation.Finn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/110Allow Data instances for external data types2020-11-25T11:09:14ZFinn TeegenAllow Data instances for external data typesCurrently, the frontend only allows custom data instances in the prelude. It should also allow data instances for external data types in every module. Moreover, the frontend currently does not check whether there is another Data instance...Currently, the frontend only allows custom data instances in the prelude. It should also allow data instances for external data types in every module. Moreover, the frontend currently does not check whether there is another Data instance in the Prelude for normal data types. That way, it is possible to have two Data instances at once for one data type. This issue would be fixed by allowing custom Data instances only for external data types.