
#14527: Warn on recursive bindings -------------------------------------+------------------------------------- Reporter: chrisdone | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by chrisdone): For context, Niklas and I were discussing this problem and I mentioned the !x restriction, only to discover that the restriction wasn't present on GHC 8. So Niklas digged and found the commit, but we weren't sure why. However, it's not quite true that GHC had ''this'' feature. Certainly, getting {{{!x}}} to disable recursion back into GHC should be much easier to convince GHC maintainers to add it back, assuming it was removed accidentally. Maybe that belongs in a separate but related ticket. More generally speaking, self-referential variables in my experience are almost always a mistake and ''once in a while'' an intentional thing for me. So it would actually be nice if GHC warned about it and I had to put an explicit `~` in the ''few times'' I wanted it, rather than `!` ''everywhere'', just to avoid the problem. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14527#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler