[GHC] #5267: Arrow command combinators
GHC
cvs-ghc at haskell.org
Mon Jun 27 09:56:12 CEST 2011
#5267: Arrow command combinators
----------------------------------------+-----------------------------------
Reporter: peteg | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.0.3
Resolution: | Keywords:
Testcase: | Blockedby:
Difficulty: | Os: Unknown/Multiple
Blocking: | Architecture: Unknown/Multiple
Failure: GHC rejects valid program |
----------------------------------------+-----------------------------------
Changes (by peteg):
* cc: peteg (added)
* status: closed => new
* resolution: invalid =>
Comment:
Ross, thanks for the clarification. I was playing golf with code of this
form:
{{{
{-# LANGUAGE Arrows #-}
module T where
import Prelude
import Control.Arrow
t = proc () ->
do rec x <- (| (arr id) (returnA -< x) |)
y <- arr id -< x
returnA -< y
}}}
(for non-trivial arrows) and surprised to get this error. The question was
whether one can put anything between {{{<-}}} and {{{(|}}}, as I did in
the original bug report.
My operators tend to be of the form:
arrAC :: Arrow (~>) => (env ~> a) -> (env ~> a) -> (env ~> a)
which syntactically doesn't satisfy your requirement but seems to work
anyway. I get confused by just where the syntactic criteria kick in and
why.
In any case can we let this bug stand as a complaint that saying some type
variable has the "wrong shape" is a terrible error message? GHC usually
tells me what it was expecting.
cheers
peter
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5267#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list