>>655
ありがとうございます
そうなんです
今のところそれしか解決策ないんです
しかし希望では IO [ Int ] であって欲しいんです
イメージとしてはこうです
ある関数 f があって乱数で挙動が変わって欲しい
もちろん最終的にはIOモナドを使わないとしょうがない
しかし色々いじってる段階ではモナド被せないで代わりに擬似乱数無限配列 psuedRand :: [ Int ] みたいなのを食わせて

f a b c psuedRand

みたいに呼び出して色々頑張って、最後の最後にIOモナドで実地に

 ( return . f a b c ) =<< realRand

に切り替えるみたいな事ができないかなと思ったんです
f が使用する乱数がある程度わかるので別に無限列でなくてもいいっちゃいいんですけど
今一歩モナドに包まれてる関数いっぱい出てくるの好きじゃないんですよ
通のホムペとか見てるとむしろバンバンモナドでくるんどいた方がいいみたいなのもみるんですけどねぇ