[GHC] #13547: Lint error in arrows program

GHC ghc-devs at haskell.org
Tue Apr 11 01:37:46 UTC 2017


#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


More information about the ghc-tickets mailing list