
22 Dec
2006
22 Dec
'06
12:26 p.m.
Hello everyone, I recently found myself attempting to use ST at the base of a stack of transformers, ala: type Test t r = ErrorT String (ST t) r I imagined, given the type of ST, that I would need a run function along the lines of: runTest :: (forall t. Test t r) -> Either String r (which was, in fact, exactly what I wanted). Unfortunately, even with that type signature, I can't find a way to convince the compiler that the state thread is properly universal in the call to runST. Is it possible to write this function, or is ST (and other monads that use its style of threading) not transformable? Thanks, /g -- It is myself I have never met, whose face is pasted on the underside of my mind.