
#13547: Lint error in arrows program -------------------------------------+------------------------------------- Reporter: cipher1024 | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 (CodeGen) | Resolution: | Keywords: Arrows Operating System: Unknown/Multiple | Architecture: x86_64 Type of failure: Compile-time | (amd64) crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: 10158 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by cipher1024): What kind of attention do you think Arrows need? I haven't contributed to GHC before but if I can help with arrows I'd love to. In this particular situation, beside needing a more civilized error message, maybe we need a generalization of `ArrowChoice` for existential types so that we can make this design work: {{{ class Arrow arr => ArrowExist arr where existentially :: (forall a. constr a => arr (f a) b) -> arr (Cell1 f constr) b }}} with {{{ data Cell1 f (constr :: * -> Constraint) = forall a. (constr a, Typeable a) => Cell (f a) -- from https://hackage.haskell.org/package/existential }}} It might be overkill though. Looking back, maybe I'm overusing existential types. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13547#comment:30 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler