How do you deprecate an instance?

On Sun, Nov 24, 2019, 12:18 PM Dan Burton <danburton.email@gmail.com> wrote:
If someone depends on this behavior, we should give them the courtesy of a proper deprecation cycle to aid them in fixing their code. That's what a deprecation cycle is for. Don't skip it.

-- Dan Burton


On Sun, Nov 24, 2019 at 7:57 AM Oleg Grenrus <oleg.grenrus@iki.fi> wrote:
I cannot see any justification for that instance

     -- | @since 4.11.0.0
     instance Fail.MonadFail (ST s) where
         fail s = errorWithoutStackTrace s

If someone wants to fail pattern matches in `ST s`, please do that
explicitly.

I suggest and propose the removal without any deprecation period. If
someone depends on this behavior, they ought to fix they code
immediately: it's straight forward compiler type-error driven refactoring.

Note: compatibility package
https://hackage.haskell.org/package/fail-4.9.0.0/docs/Control-Monad-Fail.html
doesn't have that instance, so I suspect not-that many use(d) that instance.

Discussion period: 2 weeks (until Monday 2019-12-09).

- Oleg

P.S. you might run into problems  with
https://gitlab.haskell.org/ghc/ghc/issues/15681 bug/miss-feature, but
there's always a workaround to write code using explicit matching
combinator, so it's not a show stopper.

_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries