[Haskell-cafe] Monad of no `return` Proposal (MRP): Moving `return` out of `Monad`

Taru Karttunen taruti at taruti.net
Wed Oct 7 18:02:39 UTC 2015

On 07.10 13:34, Michael Orlitzky wrote:
> (replying to no one in particular)
> This problem isn't specific to Haskell. In every other language, you
> have projects that support major versions of toolkits, compilers,
> libraries and whatnot. And there's already a tool for it: git.
> Instead of using #ifdef to handle four different compilers, keep a
> branch for each. Git is designed to make this easy, and it's usually
> trivial to merge changes from the master branch back into e.g. the
> ghc-7.8 branch. That way the code in your master branch stays clean.
> When you want to stop supporting an old GHC, delete that branch.

Isn't this hard to do correctly for libraries with Hackage 
and Cabal and narrowly versioned dependencies and deep
import graphs?

E.g. when adding a new feature to the library and merging
it back to the ghc-7.8 branch the versions needed for
features vs compiler support could end up causing
complex dependency clauses for users of such libraries.

- Taru Karttunen

More information about the Haskell-Cafe mailing list