@@ -27,7 +27,9 @@ mkDecls = do i <- getIState
2727ename x = name ("idris_" ++ show x)
2828aname x = name ("a_" ++ show x)
2929
30−epicMain = ref (ename (UN ["main"]))
30+-- The 'unsafePerformIO' makes sure it gets evaluated fully
31+epicMain = effect_ $ ref (ename (UN ["run__IO"])) @@
32+ ref (ename (UN ["main"]))
3133
3234class ToEpic a where
3335 epic :: a -> Idris E.Term
@@ -37,6 +39,7 @@ build (n, d) = do i <- getIState
3739 case lookup n (idris_prims i) of
3840 Just opDef -> return $ EpicFn (ename n) opDef
3941 _ -> do def <- epic d
42+ logLvl 3 $ "Compiled " ++ show n ++ " =\n\t" ++ show def
4043 return $ EpicFn (ename n) def
4144
4245impossible = int 42424242
@@ -68,7 +71,6 @@ instance ToEpic (TT Name) where
6871 epic' env (Bind _ _ _) = return impossible
6972 epic' env (App f a) = do f' <- epic' env f
7073 a' <- epic' env a
71− logLvl 3 $ "Compiled " ++ show f ++ " @@ " ++ show a
7274 return (f' @@ a')
7375 epic' env (Constant c) = epic c
7476 epic' env (Set _) = return impossible