ekmett / machines

Networks of composable stream transducers
Other
339 stars 46 forks source link

Refl from base #88

Closed int-index closed 6 years ago

int-index commented 7 years ago

The Is type from the Data.Machine.Is module isn't necessary with :~: being in base, is it?

YoEight commented 7 years ago

It is if you want to support GHC version prior to 7.8.1. machines should compile at the very least with GHC 7.4.2

int-index commented 7 years ago

Isn't it common practice to support only the latest three compiler releases?

YoEight commented 7 years ago

I wasn't aware of such practice. Where it comes from ?

Personally, I wouldn't mind. From all the code I have to maintain, the lowest version is 7.10.3. I don't know others' opinion on that matter.

int-index commented 7 years ago

I wasn't aware of such practice. Where it comes from ?

I believe it's the policy used for core libraries, documented here https://prime.haskell.org/wiki/Libraries/3-Release-Policy

RyanGlScott commented 7 years ago

The three release policy only concerns how to introduce breaking changes in a way that's compatible with the three most recent versions of GHC. It says nothing about the width of the overall support window (and indeed, most core libraries support back to at least 7.4).

In any case, it doesn't apply here, since machines is far from a core library.

Aside from compatibility issues, there's also the problem that Is has Semigroup and Monoid instances, but (:~:) does not. (This has been proposed, but ultimately hasn't been implemented yet.)