Changes between Version 25 and Version 26 of SplitBase


Ignore:
Timestamp:
Mar 13, 2013 2:47:16 PM (13 months ago)
Author:
nomeata
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SplitBase

    v25 v26  
    5353=== Approaches === 
    5454 
    55 ==== Large base, re-exporting API packages ==== 
     55==== (A) Large base, re-exporting API packages ==== 
    5656 
    5757Here we would keep one large `base` package, as now, with a number of wrapper packages that selectively expose stable sub-APIs. 
     
    6666 * Alternative compilers/targets can provide these APIs with totally independent implementations 
    6767 
    68 ==== Actual base split ==== 
     68==== (B) Actual base split ==== 
    6969 
    7070Here we genuinely split the code in `base` into sub-packages. 
     
    9292 * (P1) Prelude stays in base, packages wanting to use the shim packages exclusively have to use `{-# LANGUAGE NoImplicitPrelude #-}` everywhere and import stuff explicitly. base-pure would probably provide its subset of the Prelude in Prelude.Pure, to be imported explicitly. 
    9393 * (P2) Prelude goes to the first shim package that has everything required for Haskell98 (probably something like base-io-file). Packages that want to only use base-io have no Prelude to use (see (P1)). 
    94  * (P2) Prelude goes to a separate shim package, base-prelude. Packages that want to only use base-io have no Prelude to use (see (P1)). Allows packages to mix the shim-packages easily with other, non-standard Prelude providing packages, e.g. classy-prelude. 
     94 * (P3) Prelude goes to a separate shim package, base-prelude. Packages that want to only use base-io have no Prelude to use (see (P1)). Allows packages to mix the shim-packages easily with other, non-standard Prelude providing packages, e.g. classy-prelude. 
    9595 * (P4) Multiple shim packages have a Prelude module, providing the part of the Prelude that belongs to that shim package.. Good for those who depend on base-pure, but those who require both base-pure and base-io have now an ambiguous import. 
    9696 * (P5) Separate packages base-io-prelude and base-pure-prelude providing Prelude’s containing stuff of base-* (+ dependencies). Packages can pull in precisely the Prelude they want, but yet more packages.