curry-frontend issueshttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues2020-12-11T14:53:04Zhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/122Generate aValue using overlapping rules instead of ? operator2020-12-11T14:53:04ZFinn TeegenGenerate aValue using overlapping rules instead of ? operatorFinn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/120Add check for empty contexts for external functions2020-12-09T09:23:14ZFinn TeegenAdd check for empty contexts for external functionshttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/119Type class contexts are ignored for external functions2020-12-08T14:28:04ZFinn TeegenType class contexts are ignored for external functionsDue to the fact that type class context in signatures of external functions are completely ignored during type checking, one could write expressions like `id =:= id` without type error.Due to the fact that type class context in signatures of external functions are completely ignored during type checking, one could write expressions like `id =:= id` without type error.https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/118Type class contexts are missing for external functions in AbstractCurry2020-12-08T14:28:25ZFinn TeegenType class contexts are missing for external functions in AbstractCurryFinn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/116Refactor to distinguish Decl and LocalDecl2020-11-29T16:54:52ZFinn TeegenRefactor to distinguish Decl and LocalDeclhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/114Avoid pattern matching on () for dictionaries2020-11-27T15:29:04ZFinn TeegenAvoid pattern matching on () for dictionariesThe current augmentation introduces `()` arguments on which is pattern matched. This causes additional `case` expressions to be generated. We should avoid that. The same applies for the new method coming with a fix for #109.The current augmentation introduces `()` arguments on which is pattern matched. This causes additional `case` expressions to be generated. We should avoid that. The same applies for the new method coming with a fix for #109.Finn TeegenFinn Teegenhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/111Cleanup frontend targets2020-11-25T11:09:51ZFinn TeegenCleanup frontend targetshttps://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.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/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/106Unqualify built-in types2020-11-27T15:27:40ZFinn TeegenUnqualify built-in typesFinn TeegenFinn Teegenhttps://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/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/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/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/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/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/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/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/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.