| ... | @@ -14,6 +14,15 @@ Thus it might be useful to trim the Prelude down to the bare minimum possible. |
... | @@ -14,6 +14,15 @@ Thus it might be useful to trim the Prelude down to the bare minimum possible. |
|
|
- revise the Numeric class hierarchy, e.g. collapse classes `RealFrac`, Fractional, and `Floating`.
|
|
- revise the Numeric class hierarchy, e.g. collapse classes `RealFrac`, Fractional, and `Floating`.
|
|
|
- make String into a class rather than a type, with instances for `[Char]`, `PackedString`, etc
|
|
- make String into a class rather than a type, with instances for `[Char]`, `PackedString`, etc
|
|
|
|
|
|
|
|
|
## Concrete proposals for deciding what to remove
|
|
|
|
|
|
|
|
1. Remove entities that clash with other common libraries, which would otherwise require `import Prelude hiding`. For example, a function called `catch` is also exported by `Control.Exception`, `take/drop` are also exported by `Data.Sequence`. A list of these can easily be constructed.
|
|
|
|
1. Remove entities that are used in fewer than N% of modules (measure as much code as we can get our hands on, choose some appropriate N).
|
|
|
|
1. Decide what to keep.
|
|
|
|
|
|
|
|
|
|
|
|
For the record I (Simon M.) support doing at the very least (1), and I'm interested in measuring code along the lines of (2) so that we can find out what things are hardly ever used. (3) is rather less conservative.
|
|
|
|
|
|
|
## Comment
|
|
## Comment
|
|
|
|
|
|
|
|
|
|
|
| ... | | ... | |