@@ -104,7 +104,7 @@ print ansi localizer home name (Can.Forall _ tipe) =
105data State =
105data State =
107− { _kernel :: B.Builder
107+ { _revKernels :: [B.Builder]
108 , _revBuilders :: [B.Builder]
108 , _revBuilders :: [B.Builder]
109 , _seenGlobals :: Set.Set Opt.Global
109 , _seenGlobals :: Set.Set Opt.Global
@@ -116,13 +116,13 @@ emptyState =
118stateToBuilder :: State -> B.Builder
118stateToBuilder :: State -> B.Builder
119−stateToBuilder (State kernel revBuilders _) =
119+stateToBuilder (State revKernels revBuilders _) =
120− case revBuilders of
120+ prependBuilders revKernels (prependBuilders revBuilders mempty)
124− b:bs ->
123+prependBuilders :: [B.Builder] -> B.Builder -> B.Builder
125− kernel <> List.foldl' (\code decl -> decl <> code) b bs
124+prependBuilders revBuilders monolith =
125+ List.foldl' (\m b -> b <> m) monolith revBuilders
@@ -133,12 +133,12 @@ type Graph = Map.Map Opt.Global Opt.Node
135addGlobal :: Mode.Mode -> Graph -> State -> Opt.Global -> State
135addGlobal :: Mode.Mode -> Graph -> State -> Opt.Global -> State
136−addGlobal mode graph state@(State kernel builders seen) global =
136+addGlobal mode graph state@(State revKernels builders seen) global =
137 if Set.member global seen then
137 if Set.member global seen then
140 addGlobalHelp mode graph global $
140 addGlobalHelp mode graph global $
141− State kernel builders (Set.insert global seen)
141+ State revKernels builders (Set.insert global seen)
144addGlobalHelp :: Mode.Mode -> Graph -> Opt.Global -> State -> State
144addGlobalHelp :: Mode.Mode -> Graph -> Opt.Global -> State -> State
@@ -213,13 +213,13 @@ addStmt state stmt =
215addBuilder :: State -> B.Builder -> State
215addBuilder :: State -> B.Builder -> State
216−addBuilder (State kernel revBuilders seen) builder =
216+addBuilder (State revKernels revBuilders seen) builder =
217− State kernel (builder:revBuilders) seen
217+ State revKernels (builder:revBuilders) seen
220addKernel :: State -> B.Builder -> State
220addKernel :: State -> B.Builder -> State
221−addKernel (State kernel revBuilders seen) moreKernel =
221+addKernel (State revKernels revBuilders seen) kernel =
222− State (moreKernel <> kernel) revBuilders seen
222+ State (kernel:revKernels) revBuilders seen
225var :: Opt.Global -> Expr.Code -> JS.Stmt
225var :: Opt.Global -> Expr.Code -> JS.Stmt