Informal discussion about the progression of `base`

Overall, I don’t think about base much. It’s fine, I can make it do stuff, I don’t usually get bitten by version upgrades. If you gave me a magic wand, I’d wish for the following unrealistic changes:

  • I’d love to see Num split up:
    • Move fromInteger into its own class so that you can have (e.g.) libraries which can turn an integer literal into a HTTP status.
    • Make (+) the method of class Semigroup. Similarly move (*) into some other class: Semiring may be too strong (must we require commutative (+)?)
    • Make (-) a method of class Group, I guess?
  • Make map the method of class Functor
  • Rename mconcat to concat

I used to be pro-Profunctor-in-base to make it easier to write van Laarhoven Isos, but I think a small base is better than a big base. More generally, I’d like to see how Iceland_Jack’s FunctorOf work pans out before baking in more of our current ___Functor classes.

I’d also like to see some kind of smaller, teaching-style alternative to base that educational material could depend upon.

4 Likes