Thanks for the tip. A modified version of your suggestion worked for me: unsafeFreezeMatrix :: MMatrix s -> ST s Matrix unsafeFreezeMatrix (MMatrix x1 x2 marray) = do block <- unsafeFreeze marray return $ Matrix x1 x2 block
However, just out of curiosity, I'm still curious at how I could do the runSTMatrix, which would really be the icing on the cake in terms of client usability. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe