0 | module Core.SchemeEval
7 | import Core.Normalise
8 | import public Core.SchemeEval.Compile
9 | import public Core.SchemeEval.Evaluate
10 | import public Core.SchemeEval.Quote
11 | import public Core.SchemeEval.ToScheme
41 | snormaliseMode : {auto c : Ref Ctxt Defs} ->
43 | SchemeMode -> Env Term vars -> Term vars -> Core (Term vars)
44 | snormaliseMode mode env tm
45 | = do defs <- get Ctxt
46 | True <- initialiseSchemeEval
47 | | _ => normalise defs env tm
48 | sval <- seval mode env tm
52 | snormalise : {auto c : Ref Ctxt Defs} ->
54 | Env Term vars -> Term vars -> Core (Term vars)
55 | snormalise = snormaliseMode BlockExport
58 | snormaliseAll : {auto c : Ref Ctxt Defs} ->
60 | Env Term vars -> Term vars -> Core (Term vars)
61 | snormaliseAll = snormaliseMode EvalAll
64 | snf : {auto c : Ref Ctxt Defs} ->
66 | Env Term vars -> Term vars -> Core (SNF vars)
68 | = do True <- initialiseSchemeEval
69 | | _ => throw (InternalError "Scheme evaluator not available")
70 | sval <- seval BlockExport env tm
74 | snfAll : {auto c : Ref Ctxt Defs} ->
76 | Env Term vars -> Term vars -> Core (SNF vars)
78 | = do True <- initialiseSchemeEval
79 | | _ => throw (InternalError "Scheme evaluator not available")
80 | sval <- seval EvalAll env tm