[GHC] #15992: Alternative instance for Data.Functor.Compose causes <<loop>>s with some types

#15992: Alternative instance for Data.Functor.Compose causes <<loop>>s with some types -------------------------------------+------------------------------------- Reporter: glaebhoerl | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.3 Component: | Version: 8.6.2 libraries/base | Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Runtime crash Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- `many` and `some` are [http://hackage.haskell.org/package/base-4.12.0.0/docs/src/Data.Functor.Compo... omitted] and are filled in by their defaults from `Alternative`, instead of re-using the definitions provided for `f`; this manifests as infinite grammars being created in the case of the Earley parsing library, resulting in `<<loop>>` errors at runtime. The fix is just to add: {{{#!hs many = Compose . fmap sequenceA . many . getCompose some = Compose . fmap sequenceA . some . getCompose }}} Related twitter thread: https://twitter.com/ollfredo/status/1067498140100628480 (It seems like this bug has been around for some time: https://github.com/feuerbach/regex-applicative/issues/19) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15992 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC