In particular, I'm thinking about

instance MonadFix m => Monad (Backwards m) where
  m >>= f = Backwards $
    do
      fin <- forwards (f int)
      int <- forwards m
      return fin

It looks to me like this should be valid, and compatible with the Applicative instance, but maybe I'm missing something.