
6 Sep
2010
6 Sep
'10
5:55 p.m.
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