On Mon, 2008-12-29 at 14:19 -0500, Ross Mellgren wrote:
> The problem is that you're trying to take a STMatrix from some other  
> ST computation and freeze it in a new ST computation. The isolation  
> between separate computations is done via the rank-2 type variable "s"  
> in all those ST functions.

I guess I should go and read the rank-n types page on the wiki...

> Try this:
> 
> freezeMatrix :: (forall s . STMatrix s a) -> Matrix a
> freezeMatrix f :: runST (freezeMatrix f)

Do you know why point-free style doesn't work here even with the type
annotation?

> Also, instead of using an array of arrays, maybe an array with (Int,  
> Int) as the Ix might be a bit smoother?

Thanks for the suggestion. It didn't occur to me that there was an Ix
instance for that.

Best,
Andre

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

Reply via email to