@@ -1,7 +1,9 @@
1module Control.ST
1module Control.ST
3−import Language.Reflection.Utils
4import Control.IOExcept
3import Control.IOExcept
4+import Language.Reflection.Utils
6+import public Data.Fuel
6%default total
8%default total
@@ -394,13 +396,6 @@ runST env (Call prog res_prf) k
394runST env (Read lbl prf) k = k (lookupEnv prf env) env
396runST env (Read lbl prf) k = k (lookupEnv prf env) env
395runST env (Write lbl prf val) k = k () (updateEnv prf env val)
397runST env (Write lbl prf val) k = k () (updateEnv prf env val)
398−data Fuel = Empty | More (Lazy Fuel)
402−forever = More forever
404runSTLoop : Fuel -> Env invars -> STransLoop m a invars outfn ->
399runSTLoop : Fuel -> Env invars -> STransLoop m a invars outfn ->
405 (k : (x : a) -> Env (outfn x) -> m b) ->
400 (k : (x : a) -> Env (outfn x) -> m b) ->
406 (onDry : m b) -> m b
401 (onDry : m b) -> m b
@@ -589,10 +584,10 @@ run prog = runST [] prog (\res, env' => pure res)
591runLoop : Applicative m => Fuel -> STLoop m a [] ->
586runLoop : Applicative m => Fuel -> STLoop m a [] ->
592− (onEmpty : m a) ->
587+ (onDry : m a) ->
594−runLoop fuel prog onEmpty
589+runLoop fuel prog onDry
595− = runSTLoop fuel [] prog (\res, env' => pure res) onEmpty
590+ = runSTLoop fuel [] prog (\res, env' => pure res) onDry
597||| runWith allows running an STrans program with an initial environment,
592||| runWith allows running an STrans program with an initial environment,
598||| which must be consumed.
593||| which must be consumed.