GHC eseguirà l'ottimizzazione della coda per la seguente funzione di default? L'unica cosa strana è che sta definendo ricorsivamente un'azione IO, ma non vedo perché questo non possa essere TCO'd.GHC è in grado di chiamare in coda le azioni di ottimizzazione dell'IO?
import Control.Concurrent.MVar
consume :: MVar a -> [a] -> IO()
consume _ [] = return()
consume store (x:xs) = do putMVar store x
consume store xs