Isn't it just the monomorphism restriction at work?
This works fine:

> f () = do
>    a <- get_unique
>    putStr (showInt a "\n")
>    b <- get_unique
>    putStr (showInt b "\n")
>    c <- get_unique
>    putStr (showInt c "\n")                                                    
>              
>                                                            
>
> get_unique :: (?global_counter :: IORef Int) => IO Int
> get_unique = readIORef ?global_counter


J.A.
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to