Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

Loop with undecidable instances in GHC 9.4.3
## Summary Certain undecidable instances are compiled into infinite loops in GHC 9.4.3. ## Steps to reproduce This problem showed up in the `logict-sequence` test suite. Li-yao Xia somehow managed to figure out that the problem was the way certain instances were compiled. Here's a greatly reduced version: ```haskell -- Everything works fine with -O0 and -O. Only -O2 fails. {-# OPTIONS_GHC -O2 #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE MonoLocalBinds #-} import Data.Function (on) import Data.Functor.Identity data ViewT m a = Empty | a :< SeqT m a newtype SeqT m a = SeqT [m (ViewT m a)] toViewT :: Monad m => SeqT m a -> m (ViewT m a) toViewT (SeqT []) = pure Empty toViewT (SeqT (h : t)) = h >>= \case Empty -> toViewT (SeqT t) hi :< SeqT ti -> pure (hi :< SeqT (ti ++ t)) instance (Eq (m (ViewT m a)), Monad m) => Eq (SeqT m a) where (==) = (==) `on` toViewT deriving instance (Eq a, Eq (SeqT m a)) => Eq (ViewT m a) example :: SeqT Identity Int example = SeqT [] main :: IO () main = print (example == example) ``` When compiled with GHC 9.4.3, this prints ``` Buggle: <<loop>> ``` When compiled with versions 7.10.3, 8.0.2, 8.2.2, 8.4.4, 8.6.5, 8.8.4, 8.10.4, 9.0.2, or 9.2.5, it prints ``` True ``` For version 7.8, it works once the source is adjusted appropriately. ## Expected behavior I expect it to print `True`. ## Environment * GHC version used: 9.4.3 Optional: * Operating System: * System Architecture:
issue