RE: Arrowcase1
Simon Peyton-Jones <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.cvs.all,gmane.comp.lang.haskell.cvs.ghc |
|---|---|
| Message-ID | <DCA83D5F3861C941808187D4D3878750015349D559@EA-EXMSG-C312.europe.corp.microsoft.com> |
| OK, so I'll need to put p77 in the pipe along with x and z. I think
| my problem is I'm using collectPatsBinders to get the vars bound by
| a pattern, but it deliberately doesn't include dictionary binders
| from ConPatOut. Am I going to get the same issue everywhere there
| are patterns?
I guess so. It's very much as if instead of
> case compare x y of
> GT { p77 = plusInt } -> returnA -< p77 z x
you had
case compare x y of
GT -> let p77 = plusInt in returnA -< p77 z x
Hmm. Would it be possible to desugar in the ordinary way first, and only *then* run over the result doing the proc-isng stuff? Then you would not have to deal with nested patterns etc.
Simon