Ashley Yakeley wrote: | So how is that an m -> r dependency? Nothing is | stopping the programmer have two different kinds of | reference for the same monad, and 'readRef' and | 'writeRef' will work on any Ref. You are completely right, of course I meant r -> m! /Koen. -- Koen Claessen http://www.cs.chalmers.se/~koen Chalmers University, Gothenburg, Sweden.