
would making arrow remindable involve dropping the arr == haksell functions
assumption or doing something that would allow generalized arrows?
On Mon, Jun 16, 2014 at 5:14 PM, Nicolas Frisby
FYI it's #7828, not #7282.
Jan, I'm very glad you're working on this. Thanks!
On Mon, Jun 16, 2014 at 2:33 PM, Jan Stolarek
wrote: Why do you want this? The danger I see lurking is that you might find two RdrNames that give the same answer to getUnique but represent different Yes, that's exactly my concern.
Why do you want this? I'm working on #7282 - RebindableSyntax and Arrows. Here's a snippet from desugaring of arrow notation:
leaves = concatMap leavesMatch matches where leavesMatch :: LMatch Id (Located (body Id)) -> [(Located (body Id), IdSet)] leavesMatch (L _ (Match pats _ (GRHSs grhss binds))) = let defined_vars = mkVarSet (collectPatsBinders pats) `unionVarSet` mkVarSet (collectLocalBinders binds) in [(body, mkVarSet (collectLStmtsBinders stmts) `unionVarSet` defined_vars) | L _ (GRHS stmts body) <- grhss]
This is in the desugarer. But I need to also know `length leaves` at the renaming stage, which means I need to call `concatMap leavesMatch matches`. The problem is that in the renamer my datatypes are not parametrised by `Id`. I turned `Id` into a type parameter `id`, but then I can't use VarSets. I could use more general UniqueSets but only if `id` type parameter is an instance of Uniquable. And since in the renamer the datatypes are parametrized with RdrName this leads me to wanting Uniqable RdrName instance.
Janek _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs