
#7887: panic when playing with pipes ---------------------------------+------------------------------------------ Reporter: bfr | Owner: Type: bug | Status: closed Priority: normal | Component: Compiler Version: 7.6.3 | Resolution: fixed Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Changes (by monoidal): * status: new => closed * resolution: => fixed Comment: It's fixed in HEAD. Here's a stripped version without dependency on pipes: {{{ {-# LANGUAGE RankNTypes #-} hoist :: (forall a. m a -> n a) -> t m b -> t n b hoist = hoist test :: () -> a test = test lift :: m a -> t m a lift = lift x = hoist (hoist lift) test }}} 7.6 panicks, but HEAD gives {{{ C.hs:12:24: Couldn't match type ‛t1 m’ with ‛()’ Expected type: t (t1 m) a Actual type: () -> a Relevant bindings include x :: t (t1 (t2 m)) a (bound at C.hs:12:1) In the second argument of ‛hoist’, namely ‛test’ In the expression: hoist (hoist lift) test }}} which is a correct error. (I opened #7888 as a leftover of debugging.) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7887#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler