|Version 13 (modified by john@…, 10 years ago) (diff)|
These are features which we might want to consider for removal or replacement with something better/cleaner.
- n + k patterns
- For removal: we have been saying it will happen for a while now, we should make good on it.
- ~ patterns
- For removal: can be simulated with 'where' or 'let' clauses
- Against removal:
- fine control of strictness can require careful placement of these and let/where would obscure what is happening and get very verbose with nested ~ patterns.
- are used in several safe programing idioms that would not be workroundable.
- the monomorphism restriction
- classes (no really, there are people who advocate this!)
- the Prelude (or at least, seriously trim it to the minimum possible)
- For removal: defaults are limited to certain classes. A tool like Hat, which transforms Haskell source, cannot transform the defaults, because there is no way make defaults apply to the transformed classes rather than the original ones.
- For fixing: report specification when it comes to defaulting impossible to implement when general recursive modules are allowed.
- For replacement: Perhaps require a default clause to name the class being defaulted over, as well as the type to choose.
- class contexts on data definitions
- For removal: they add no extra useful expressivity that is not already present in the function signatures which use the datatype.
- record syntax