The persistent-map package [1] provides a thread-safe (STM) frontend for finite map types together with a backend interface for persistent storage. The TMap data type is thread-safe, since all access functions run inside an STM monad . Any type that is an instance of Data.Edison.Assoc.FiniteMapX (see EdisonAPI) can be used as a map type.
If a TMap is modified within an STM transaction, a corresponding backend IO-request is added using the onCommit hook (cf. stm-io-hooks package). To ensure consistency, the (Adv)STM monad runs these requests iff the transaction commits. Additional backends (e.g. HDBC) can be added by instantiating class Backend. Cheers, Peter [1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/persistent-map _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell