@@ -120,12 +120,23 @@ registerHelp dep (Env vs home uid deps fx htc) =
120-- REGISTER EFFECTS
120-- REGISTER EFFECTS
123−registerEffects :: Effects.ManagerType -> Optimizer Effects.ManagerType
123+registerEffects :: ModuleName.Canonical -> Effects.ManagerType -> Optimizer Effects.ManagerType
124−registerEffects manager =
124+registerEffects home manager =
125− do State.modify (registerEffectsHelp manager)
125+ do (Env vs hm uid deps _ htc) <- State.get
126+ let newDeps = Set.union deps (getEffectDeps home manager)
127+ State.put (Env vs hm uid newDeps (Just manager) htc)
126 return manager
128 return manager
129−registerEffectsHelp :: Effects.ManagerType -> Env -> Env
131+getEffectDeps :: ModuleName.Canonical -> Effects.ManagerType -> Set.Set Var.Global
130−registerEffectsHelp manager (Env vs home uid deps _ htc) =
132+getEffectDeps home manager =
131− Env vs home uid deps (Just manager) htc
133+ Set.fromList $ map (Var.Global home) $
136+ [ "init", "onEffects", "onSelfMsg", "cmdMap" ]
139+ [ "init", "onEffects", "onSelfMsg", "subMap" ]
142+ [ "init", "onEffects", "onSelfMsg", "cmdMap", "subMap" ]