@@ -97,11 +97,12 @@ instance ToEpic (TT Name) where
9797 = do arg' <- epic' env arg
9898 return $ lazy_ arg'
9999 | (P _ (UN "prim__IO") _, [v]) <- unApply tm
100− = epic' env v
100+ = do v' <- epic' env v
101+ return (effect_ v')
101102 | (P _ (UN "io_bind") _, [_,_,v,k]) <- unApply tm
102103 = do v' <- epic' env v
103104 k' <- epic' env k
104− return (k' @@ (effect_ v'))
105+ return (effect_ (k' @@ (effect_ v')))
105106 | (P _ (UN "malloc") _, [_,size,t]) <- unApply tm
106107 = do size' <- epic' env size
107108 t' <- epic' env t