ANNOUNCE: attribute 0.1

Ross Paterson ross at soi.city.ac.uk
Thu Nov 13 23:58:29 EST 2003


[switching to libraries]

On Thu, Nov 13, 2003 at 04:29:49PM -0500, Derek Elkins wrote:
> Sorry that I'm too lazy to download the the tar.bz2 and see for myself,
> but...
> 
> On Thu, 13 Nov 2003 16:06:24 -0500
> "Abraham Egnor" <aegnor at antioch-college.edu> wrote:
> >   that applies those functions to a monadic reference.  Instances for
> >   MRef are provided for both IORef and STRef.
> 
> Assuming MRef is like the below, did you include Lazy.ST too?
> 
> On a more general note, sticking something like MonadRef somewhere in
> the heirarchical libs seems like it would be useful.  Or perhaps Iavor's
> monad library?
> 
> instance MonadRef IO IORef where
>     newRef = newIORef
>     readRef = readIORef
>     writeRef = writeIORef
> 
> instance MonadRef (Lazy.ST s) (STRef s) where
>     newRef = Lazy.strictToLazyST . newSTRef
>     readRef = Lazy.strictToLazyST . readSTRef
>     writeRef = (Lazy.strictToLazyST .) . writeSTRef
> 
> instance MonadRef (Strict.ST s) (STRef s) where
>     newRef = newSTRef
>     readRef = readSTRef
>     writeRef = writeSTRef

For an alternative design, see

http://haskell.org/pipermail/libraries/2003-September/001411.html


More information about the Libraries mailing list