Record of STRefs better than STRef to a Record?

Andrew J Bromage ajb@spamcop.net
Wed, 13 Nov 2002 15:19:08 +1100


G'day all.

On Wed, Nov 13, 2002 at 04:05:42AM +0000, Jorge Adriano wrote:

> If I use an STRef to a record, will a new record be created each time I want 
> to update a single field?

Basically, yes.

> Right now I'm using a record of STRefs, like:
> data E s = E{
>       refi ::  STRef s Int,
>       refc ::  STRef s Char
>     }
> 
> but it can get a little messy, since thread s propagates to every datatype 
> that uses the record type in it's definition.

You could always use IORefs, if you don't mind having the IO monad
threaded through.

Cheers,
Andrew Bromage