I use hashStableName to split the names up then walk down the list use equality comparisons on an expected O(1) items. I'll probably rewrite it using unordered containers, since Tibbe does the same sans the stable names.

Sent from my iPad

On Sep 23, 2011, at 5:54 AM, "Alberto G. Corona " <agocorona@gmail.com> wrote:

How do you do that, since Stable Names have not an Ord instance?. Using the Eq instance the lookup should be O(n). 

 The paper suggest that SNMap is a hash table, presumably with hashStableNames underneath:

This should work more or less . using Data.HashTable

Import Data.HashTable
import Data.Dynamic

table :: HashTable StableName  Dynamic

table= new (==)   hashStableName




2011/9/22 Edward Kmett <ekmett@gmail.com>
I have a "stable-maps" package that provides lookup and inserting into a map via stable names.

-Edward

On Thu, Sep 22, 2011 at 5:47 AM, Sean Leather <leather@cs.uu.nl> wrote:
There is an abstract type called SNMap for stable names referred to in [1]. This has apparently disappeared from GHC a long time ago. Is it still available somewhere, or is there a suitable replacement for it?

Regards,
Sean

[1] "Stretching the storage manager: weak pointers and stable names in Haskell" - http://research.microsoft.com/apps/pubs/default.aspx?id=67497

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe