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 <[email protected]> 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 > [email protected] > http://www.haskell.org/mailman/listinfo/ghc-devs >
_______________________________________________ ghc-devs mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-devs
