summaryrefslogtreecommitdiff
path: root/src/gen_lib/state.lem
diff options
context:
space:
mode:
authorChristopher Pulte2016-09-25 15:14:12 +0100
committerChristopher Pulte2016-09-25 15:14:12 +0100
commitdd052bfc3e00a1ae988044ae81dd1624332dd899 (patch)
tree357d6e14136545dce7d0d120b7c1e5bccf27970d /src/gen_lib/state.lem
parent6e7cee1575a7c49f4bdc30dfd6f25546c6c70995 (diff)
nicer lem output: no more unecessary 'unit' returns if if-expressions, for-loops or case-expressions also return updated variables
Diffstat (limited to 'src/gen_lib/state.lem')
-rw-r--r--src/gen_lib/state.lem12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/gen_lib/state.lem b/src/gen_lib/state.lem
index 51658d6e..5fc59207 100644
--- a/src/gen_lib/state.lem
+++ b/src/gen_lib/state.lem
@@ -158,20 +158,20 @@ let read_two_regs r1 r2 =
return (v1 ^^ v2)
val foreachM_inc : forall 'e 'vars. (i * i * i) -> 'vars ->
- (i -> 'vars -> M 'e (unit * 'vars)) -> M 'e (unit * 'vars)
+ (i -> 'vars -> M 'e 'vars) -> M 'e 'vars
let rec foreachM_inc (i,stop,by) vars body =
if i <= stop
then
- body i vars >>= fun (_,vars) ->
+ body i vars >>= fun vars ->
foreachM_inc (i + by,stop,by) vars body
- else return ((),vars)
+ else return vars
val foreachM_dec : forall 'e 'vars. (i * i * i) -> 'vars ->
- (i -> 'vars -> M 'e (unit * 'vars)) -> M 'e (unit * 'vars)
+ (i -> 'vars -> M 'e 'vars) -> M 'e 'vars
let rec foreachM_dec (i,stop,by) vars body =
if i >= stop
then
- body i vars >>= fun (_,vars) ->
+ body i vars >>= fun vars ->
foreachM_dec (i - by,stop,by) vars body
- else return ((),vars)
+ else return vars