Reference is class which generalizes references and monads they exists
in. It means that IORef, STRef and others can be accessed by common
interface.

Currently it is of form:

class Reference r m where

1. There was a proposal to rename the class to MonadRef or
MonadReference. IMHO it would imply m -> r functional dependency and
therefore disallow the instances for both MVar IO and IORef IO

2. Should the functional dependencies or type famillies be introduced?
Personally I don't think so as I would like to allow all of the
following:

 - IORef IO
 - MVar IO
 - IORef (ContT IO)
 - MVar (ContT IO)

Any feedback mostly welcome. 

Regards
PS. Darcs repository will be available soon 

Attachment: signature.asc
Description: This is a digitally signed message part

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

Reply via email to