¿GHC realizará la optimización de la llamada de cola en la siguiente función de forma predeterminada? Lo único raro de esto es que está definiendo recursivamente una acción IO, pero no veo por qué esto no podría ser TCO.¿GHC puede realizar una llamada de cola para optimizar las acciones de E/S?
import Control.Concurrent.MVar
consume :: MVar a -> [a] -> IO()
consume _ [] = return()
consume store (x:xs) = do putMVar store x
consume store xs