> What were you planning on doing with the "g" parameter? Well, one thought would be to use some type class magicery to try to use this to ensure linearity, but I have no idea how to go about that.
Another thing that had crossed my mind was to use unsafeInterleaveIO to generate an infinite list of random #s according to the IO function and store these in g and then just take 1 off the head at each call...I don't know whether this is safe or not, though. > AFAICT, unless you can get at c_gengam's state, you can't (safely) get > the Haskell version out of the IO monad. OTOH, if you have a means to > set the seed, you could combine the two into a pure function, and thus > provide a pure (non-IO) Haskell interface. E.g. if you had: Hrm. Getting at its state is really a bother and, while I probably could, it would make me a very unhappy camper. > [Although, in the second approach, I presume that you would need > addtional code for multi-threaded use.] I don't care about multi-threaded use. - Hal -- Hal Daume III | [EMAIL PROTECTED] "Arrest this man, he talks in maths." | www.isi.edu/~hdaume _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell