[GHC] #7887: panic when playing with pipes
GHC
cvs-ghc at haskell.org
Sat May 11 02:00:30 CEST 2013
#7887: panic when playing with pipes
-------------------------------+--------------------------------------------
Reporter: bfr | Owner:
Type: bug | Status: closed
Priority: normal | Milestone:
Component: Compiler | Version: 7.6.3
Resolution: fixed | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: None/Unknown | Difficulty: Unknown
Testcase: | Blockedby:
Blocking: | Related:
-------------------------------+--------------------------------------------
Changes (by igloo):
* difficulty: => Unknown
Old description:
> I am playing around with pipes-3.2.0 using ghc-6.7.3. I load this code in
> ghci:
>
> """
> import Control.Proxy
>
> fork :: (Monad m, Proxy p1, Proxy p2, Proxy p3)
> => () -> Consumer p1 a (Producer p2 a (Producer p3 a m)) r
> fork () = runIdentityP . hoist (runIdentityP . hoist runIdentityP) $
> forever $ do
> a <- request () -- Request from the 'Consumer'
> lift $ respond a -- Send to the outer 'Producer'
> lift $ lift $ respond a -- Send to the inner 'Producer'
>
> test :: (Proxy p) => () -> Producer p Int IO r
> test () = runIdentityP $ forever $ do
> respond 1
> """
>
> then I type
>
> *Main> :t hoist (hoist lift) $ test
>
> <interactive>:1:1: Warning:
> Could not deduce (Monad ()) arising from a use of `hoist'
> from the context (Monad m, MonadTrans t1, Proxy p, MFunctor t)
> bound by the inferred type of
> it :: (Monad m, MonadTrans t1, Proxy p, MFunctor t) =>
> t (t1 m) -> Producer p Int IO r
> at Top level
> Possible fix: add an instance declaration for (Monad ())
> In the expression: hoist (hoist lift)
> In the expression: hoist (hoist lift) $ test
>
> <interactive>:1:1: Warning:
> Could not deduce (MFunctor (->)) arising from a use of `hoist'
> from the context (Monad m, MonadTrans t1, Proxy p, MFunctor t)
> bound by the inferred type of
> it :: (Monad m, MonadTrans t1, Proxy p, MFunctor t) =>
> t (t1 m) -> Producer p Int IO r
> at Top level
> Possible fix: add an instance declaration for (MFunctor (->))
> In the expression: hoist (hoist lift)
> In the expression: hoist (hoist lift) $ test
>
> <interactive>:1:8: Warning:ghc: panic! (the 'impossible' happened)
> (GHC version 7.6.3 for x86_64-unknown-linux):
> kindFunResult
> <<details unavailable>>
>
> Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
New description:
I am playing around with pipes-3.2.0 using ghc-6.7.3. I load this code in
ghci:
{{{
import Control.Proxy
fork :: (Monad m, Proxy p1, Proxy p2, Proxy p3)
=> () -> Consumer p1 a (Producer p2 a (Producer p3 a m)) r
fork () = runIdentityP . hoist (runIdentityP . hoist runIdentityP) $
forever $ do
a <- request () -- Request from the 'Consumer'
lift $ respond a -- Send to the outer 'Producer'
lift $ lift $ respond a -- Send to the inner 'Producer'
test :: (Proxy p) => () -> Producer p Int IO r
test () = runIdentityP $ forever $ do
respond 1
}}}
then I type
{{{
*Main> :t hoist (hoist lift) $ test
<interactive>:1:1: Warning:
Could not deduce (Monad ()) arising from a use of `hoist'
from the context (Monad m, MonadTrans t1, Proxy p, MFunctor t)
bound by the inferred type of
it :: (Monad m, MonadTrans t1, Proxy p, MFunctor t) =>
t (t1 m) -> Producer p Int IO r
at Top level
Possible fix: add an instance declaration for (Monad ())
In the expression: hoist (hoist lift)
In the expression: hoist (hoist lift) $ test
<interactive>:1:1: Warning:
Could not deduce (MFunctor (->)) arising from a use of `hoist'
from the context (Monad m, MonadTrans t1, Proxy p, MFunctor t)
bound by the inferred type of
it :: (Monad m, MonadTrans t1, Proxy p, MFunctor t) =>
t (t1 m) -> Producer p Int IO r
at Top level
Possible fix: add an instance declaration for (MFunctor (->))
In the expression: hoist (hoist lift)
In the expression: hoist (hoist lift) $ test
<interactive>:1:8: Warning:ghc: panic! (the 'impossible' happened)
(GHC version 7.6.3 for x86_64-unknown-linux):
kindFunResult
<<details unavailable>>
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
}}}
--
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7887#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list