@@ -27,7 +27,9 @@ mkDecls = do i <- getIState
27ename x = name ("idris_" ++ show x)
27ename x = name ("idris_" ++ show x)
28aname x = name ("a_" ++ show x)
28aname x = name ("a_" ++ show x)
30+-- The 'unsafePerformIO' makes sure it gets evaluated fully
31+epicMain = effect_ $ ref (ename (UN ["run__IO"])) @@
30−epicMain = ref (ename (UN ["main"]))
32+ ref (ename (UN ["main"]))
32class ToEpic a where
34class ToEpic a where
33 epic :: a -> Idris E.Term
35 epic :: a -> Idris E.Term
@@ -37,6 +39,7 @@ build (n, d) = do i <- getIState
37 case lookup n (idris_prims i) of
39 case lookup n (idris_prims i) of
38 Just opDef -> return $ EpicFn (ename n) opDef
40 Just opDef -> return $ EpicFn (ename n) opDef
39 _ -> do def <- epic d
41 _ -> do def <- epic d
42+ logLvl 3 $ "Compiled " ++ show n ++ " =\n\t" ++ show def
40 return $ EpicFn (ename n) def
43 return $ EpicFn (ename n) def
42impossible = int 42424242
45impossible = int 42424242
@@ -68,7 +71,6 @@ instance ToEpic (TT Name) where
68 epic' env (Bind _ _ _) = return impossible
71 epic' env (Bind _ _ _) = return impossible
69 epic' env (App f a) = do f' <- epic' env f
72 epic' env (App f a) = do f' <- epic' env f
70 a' <- epic' env a
73 a' <- epic' env a
71− logLvl 3 $ "Compiled " ++ show f ++ " @@ " ++ show a
72 return (f' @@ a')
74 return (f' @@ a')
73 epic' env (Constant c) = epic c
75 epic' env (Constant c) = epic c
74 epic' env (Set _) = return impossible
76 epic' env (Set _) = return impossible