Hello cafe,

I've hit a bit of a monadic snag here...

I'm scanning a big file, building a table of statistics. I end up with something
like

IO (IntMap (IOUArray Int Double))

Once I've read in the whole file and built my statistics, I don't need any more
updates, so I'd like to do something like

IntMap (IOUArray Int Double) -> IO (IntMap (UArray Int Double)),

using unsafeFreeze. I'm getting stuck here, since the IntMap library is not so
monad-friendly. 

I could rebuild the whole thing using sequence and lists, but the table is
pretty big (4.5 million keys on a first run), so I'd prefer to avoid that. Any
ideas?

BTW, I probably "should" be using ST for this, but I hit the usual "type s
escapes" irritation and gave up. If that would work more easily, that would be
fine with me too.

Thanks!

Chad Scherrer

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

Reply via email to