global_abc = unsafePerformIO (newIORef [5, 13])
abc x = do{(y:ys)<-readIORef global_abc; writeIORef global_abc ys; return y}