on master help sign in
Add effect_ annotations for better IO behaviour
commit400f8589c1f48fd1eaba7928b895407d480724e5 authorEdwin Brady <eb@cs.st-andrews.ac.uk> dateMon 9 Apr 2012, 13:32 (15 years ago) parentd9516ef
1 file changed+3−2
src/Idris/Compiler.hs+3−2
src/Idris/Compiler.hs+3−2
@@ -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