Changes between Version 5 and Version 6 of SplitBase


Ignore:
Timestamp:
Feb 13, 2013 9:32:39 PM (3 years ago)
Author:
nomeata
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SplitBase

    v5 v6  
    55The following is a list of all modules in Base, with a suggested re-grouping. Whether this makes sense WRT interdependencies has not yet been verified:
    66
     7=== Non-Obvious interdependencies ===
     8
     9This is a list of interdependencies between seemingly unrelated parts that need to be taken into consideration:
     10
     11 * class Monad mentions `String`, hence pulling Char
     12 * class Monad mentions `error` and `Data.Int` requires `throw DivideByZero`, hence pulling in exceptions
     13 * Exceptions pull in `Typeable`
     14 * `Typeable` pulls in `GHC.Fingerprint`
     15 * GHC.Fingerprint pulls in `Foreign` and `IO`
     16
    717=== base-pure ===
    818
    919One package for all standard ADTs (Bool, [], Maybe...) and other pure definitions that are expected to work even with strange targets.
    1020
    11 Question: Do we want this to include Int and Integer? It is required for, e.g. length, but already includes assumptions about the target. But probably they’d need to go in here as well.
    12 
    13 Question: Any reason to keep Char and String separate? Maybe the requirement on the unicode data? Presumably there are interesting targets that do not need String (embedded devices), but what about functions like `error`?
    14 
    15 Answer: Probably not possible: The monad class needs String for `fail`, and also error for the default instance. Also there are classes (Exception) with Show class constraints.
    16 
    17 But: GHC.Unicode uses the FFI...
    18 
    19 
    20 What about `Data` and `Typeable`? Looks as if we can avoid them, but then `Data.Int` requires `throw DivideByZero` which in turn pulls in exceptions and hence `Typeable`
     21By the list from above, this also needs to have `Char`, Exceptions, `Typeable` and from there much other stuff...
    2122
    2223 * [http://hackage.haskell.org/packages/archive/base/4.6.0.1/doc/html/Control-Applicative.html Control.Applicative]