@@ -30,11 +30,11 @@ import qualified Generate.JavaScript.Variable as JS
30generate :: Obj.Graph -> Obj.Roots -> BS.Builder
30generate :: Obj.Graph -> Obj.Roots -> BS.Builder
31generate graph roots =
31generate graph roots =
33− (State builders _ _ effects table) =
33+ (State builders _ _ effects) =
34 List.foldl' (crawl graph) initialState (Obj.toGlobals roots)
34 List.foldl' (crawl graph) initialState (Obj.toGlobals roots)
36 managers =
36 managers =
37− fst $ JS.run table (JsEffects.generate effects)
37+ JS.run (JsEffects.generate effects)
39 List.foldl' (\rest stmt -> stmt <> rest) managers builders
39 List.foldl' (\rest stmt -> stmt <> rest) managers builders
@@ -49,13 +49,12 @@ data State =
49 , _seenDecls :: Set.Set Var.Global
49 , _seenDecls :: Set.Set Var.Global
50 , _seenKernels :: Set.Set ModuleName.Raw
50 , _seenKernels :: Set.Set ModuleName.Raw
51 , _effects :: Map.Map ModuleName.Canonical Effects.ManagerType
51 , _effects :: Map.Map ModuleName.Canonical Effects.ManagerType
56initialState :: State
55initialState :: State
57initialState =
56initialState =
58− State [] Set.empty Set.empty Map.empty JS.emptyTable
57+ State [] Set.empty Set.empty Map.empty
@@ -63,7 +62,7 @@ initialState =
65crawl :: Obj.Graph -> State -> Var.Global -> State
64crawl :: Obj.Graph -> State -> Var.Global -> State
66−crawl graph@(Obj.Graph decls kernels) state@(State _ seenDecls seenKernels _ _) name@(Var.Global home _) =
65+crawl graph@(Obj.Graph decls kernels) state@(State _ seenDecls seenKernels _) name@(Var.Global home _) =
67 if Set.member name seenDecls then
66 if Set.member name seenDecls then
@@ -101,11 +100,11 @@ crawlDecl graph var@(Var.Global home name) (Opt.Decl direct indirect fx body) st
102 state1 { _seenDecls = Set.insert var (_seenDecls state1) }
101 state1 { _seenDecls = Set.insert var (_seenDecls state1) }
104− (State builders seenDecls seenKernels effects table) =
103+ (State builders seenDecls seenKernels effects) =
105 Set.foldl' (crawl graph) state2 direct
104 Set.foldl' (crawl graph) state2 direct
107− (stmt, newTable) =
106+ stmt =
108− JS.run table (JsExpr.generateDecl home name body)
107+ JS.run (JsExpr.generateDecl home name body)
@@ -113,7 +112,6 @@ crawlDecl graph var@(Var.Global home name) (Opt.Decl direct indirect fx body) st
113 , _seenDecls = seenDecls
112 , _seenDecls = seenDecls
114 , _seenKernels = seenKernels
113 , _seenKernels = seenKernels
115 , _effects = maybe id (Map.insert home) fx effects
114 , _effects = maybe id (Map.insert home) fx effects
119 Set.foldl' (crawl graph) state4 indirect
117 Set.foldl' (crawl graph) state4 indirect
@@ -129,18 +127,17 @@ crawlKernel graph name (Kernel.Info imports chunks) state1 =
130 state1 { _seenKernels = Set.insert name (_seenKernels state1) }
128 state1 { _seenKernels = Set.insert name (_seenKernels state1) }
132− (State builders seenDecls seenKernels effects table) =
130+ (State builders seenDecls seenKernels effects) =
133 List.foldl' (crawl graph) state2 (map toCoreGlobal imports)
131 List.foldl' (crawl graph) state2 (map toCoreGlobal imports)
135− (builder, newTable) =
133+ builder =
136− JS.run table (foldM chunkToBuilder mempty chunks)
134+ JS.run (foldM chunkToBuilder mempty chunks)
139 { _builders = builder : builders
137 { _builders = builder : builders
140 , _seenDecls = seenDecls
138 , _seenDecls = seenDecls
141 , _seenKernels = seenKernels
139 , _seenKernels = seenKernels
142 , _effects = effects
140 , _effects = effects