on 0fccc0e help sign in
elk/src/Optimize.hs
19 lines 428 B history raw
1module Optimize where
3import qualified AST.Module as M
4import qualified Optimize.TailCalls as TC
7optimize :: M.CanonicalModule -> M.Optimized
8optimize modul =
9 let
10 canonicalBody =
11 M.body modul
13 optimizedProgram =
14 TC.optimize (M.program canonicalBody)
16 optimizedBody =
17 canonicalBody { M.program = optimizedProgram }
18 in
19 modul { M.body = optimizedBody }