Gabriella439 / Haskell-MMorph-Library

Monad morphisms
BSD 3-Clause "New" or "Revised" License
47 stars 26 forks source link

Why `mmorph-1.1.4` is `base>=4.13`? #57

Closed phadej closed 3 years ago

phadej commented 3 years ago

Is support for older GHCs dropped?

phadej commented 3 years ago

Also 1.1.4 dropped instance Data.Traversable.Traversable (f (g m)) => Data.Traversable.Traversable (Control.Monad.Trans.Compose.ComposeT f g m) which is PVP contract violation.

Gabriella439 commented 3 years ago

@phadej: The reason for the tight lower bound is to temporarily fix the build failures due to a mistake in 1.1.4. See https://github.com/Gabriel439/Haskell-MMorph-Library/issues/54 for more details

The dropped instance was not intentional, though, and I'm looking into that. I may end up blacklisting 1.1.4 when I put up a new fixed release

phadej commented 3 years ago

Thanks for the explanation.

phadej commented 3 years ago

Looks like you forgot an instance from a list in 8f1a69cec9fa08eeb525c9768dc107400994f2af

phadej commented 3 years ago

Also

+ instance (Control.Monad.Reader.Class.MonadReader r (f (g m)), Control.Monad.Writer.Class.MonadWriter w (f (g m)), Control.Monad.State.Class.MonadState s (f (g m))) => Control.Monad.RWS.Class.MonadRWS r w s (Control.Monad.Trans.Compose.ComposeT f g m) 
- instance Control.Monad.RWS.Class.MonadRWS r w s (f (g m)) => Control.Monad.RWS.Class.MonadRWS r w s (Control.Monad.Trans.Compose.ComposeT f g m) 

This is not breaking change as MonadRWS implies the reader, writer and state; but maybe something to mention in the changelog.

Gabriella439 commented 3 years ago

Alright, I just uploaded 1.1.5 which I believe has incorporated your feedback and also blacklisted 1.1.4

phadej commented 3 years ago

I usually use word blacklist to mean a base <0 (i.e. unsatisfiable) revision. You merely deprecated the 1.1.4 version.

The difference is that when forced deprecated version can still be picked by a solver, but unsatisfiable constraint essentially removes a version from available set. The only way to access it is to use older index-state (or e.g. stack's resolver pinning specific revision).

phadej commented 3 years ago

Thanks for prompt responses, btw!

Gabriella439 commented 3 years ago

You're welcome! 🙂