Re: [GHC] #7828: RebindableSyntax and Arrow

They are subsets of xs: xs1 is the variables used by c, while xs2 is
#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 ross): Replying to [comment:22 jstolarek]: the
variables used by ss but not bound in p. So the command 'c' gets local environment xs1 and stack (). The translations of statements are arrows that take an environment (here xs2) as input.
That starts to make sense :-) As I understand `x1` and `x2` need not be disjoint - is that correct?
I am yet to understand the rules for encoding the input parameters to
That's right. If a variable is used by both `c` and `ss`, it will be in both sets. the arrows.
Is there a general rule that says when and in what order things are put on the stack? Is it the case that elements on the stack are never accessed and need to be popped if they are to be used?
Things are added to the stack by `HsCmdApp` and removed with `HsCmdLam`, but stacks can also be modified by `HsCmdArrForm` - there are some examples in the "Primitive constructs" section in teh arrow notation part of the GHC User's Guide. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7828#comment:23 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC