[GHC] #7828: RebindableSyntax and Arrow
GHC
ghc-devs at haskell.org
Fri May 30 10:29:23 UTC 2014
#7828: RebindableSyntax and Arrow
----------------------------------------------+----------------------------
Reporter: AlessandroVermeulen | Owner:
Type: bug | jstolarek
Priority: normal | Status: new
Component: Compiler (Type checker) | Milestone: 7.10.1
Resolution: | Version: 7.6.2
Operating System: Unknown/Multiple | Keywords:
Type of failure: GHC rejects valid program | Architecture:
Test Case: | Unknown/Multiple
Blocking: | Difficulty: Unknown
| Blocked By:
| Related Tickets:
----------------------------------------------+----------------------------
Comment (by jstolarek):
> There really is no alternative to generating them all
Yes, I am not questioning that.
> What precisely is "above". I don't see a proposed design.
I meant storing IDs of calls necessary for desugaring in the extra fields
(or extra datatypes) of the constructors of `StmtLR`. Of course this
assumes that it is correct to "desugar then typecheck" the arrow do-
notation. After reading "A New Notation for Arrows" I feel this should be
perfectly OK, just as it is OK for monadic do, but of course that's a
layman's perspective.
I have a few questions about implementation in `DsArrows` - I think these
go to Ross.
1. What is the purpose of the stack created in the desugaring process?
2. How do I read the notation describing each case of `dsCmd`? Eg. the
`HsCmdApp` case has this comment:
{{{
-- D; ys |-a cmd : (t,stk) --> t'
-- D, xs |- exp :: t
-- ------------------------
-- D; xs |-a cmd exp : stk --> t'
--
-- ---> premap (\ ((xs),stk) -> ((ys),(e,stk))) cmd
}}}
What is `|-a`, `xs` and `ys`? What is the difference between `:` and `::`?
Could you tell me how to read this particular comment? I should then be
able to understand all the others.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7828#comment:11>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list