The Bad Parts 2 - Haskell

Welcome to the Functional Programming Zulip Chat Archive. You can join the chat here.

TheMatten

It would be nice to see some initiative for replacement of boot libraries, which could then possibly be integrated into existing ones later on
There's so much we could do if given another chance:

  • make stacktraces default when it comes to exceptions
  • replace partial stuff with total functions + equivalent of expect from Rust
  • polish interfaces for common datatypes, add often requested combinators
  • promote some alternative to [] where appropriate
  • replace String
  • make mutable containers easier to use, provide missing ones where appropriate
  • provide more of strict alternatives to datatypes where appropriate
  • rework TH
  • remove legacy stuff from Typeable API
  • merge Arrows and Profunctors
  • clean up mess of combinators and newtypes in Control.Monad, Control.Applicative, Data.Foldable and Data.Traversable and in Data.Semigroup and Data.Monoid
  • ...
TheMatten

Seems like we could have great mutable versions of containers once LinearTypes get finished

TheMatten

(I mean, with interface that does not require ST/IO)

Mats Rauhala

Some of these feel like they should be trivial as long as some effort is spent on them. Some of these feel like they're going to end up being an endless debate on what to do with them.

Mats Rauhala

But knowing the Haskell ecosystem, even the trivial ones will end up being debated for ages

TheMatten

I guess given once we have some design(s) at hand, we could have committee pick some deadline and make a vote even if there will be some disagreements, so that we

don't let the perfect be the enemy of the good