diff options
| author | Christopher Pulte | 2016-09-25 15:14:12 +0100 |
|---|---|---|
| committer | Christopher Pulte | 2016-09-25 15:14:12 +0100 |
| commit | dd052bfc3e00a1ae988044ae81dd1624332dd899 (patch) | |
| tree | 357d6e14136545dce7d0d120b7c1e5bccf27970d /src/gen_lib/state.lem | |
| parent | 6e7cee1575a7c49f4bdc30dfd6f25546c6c70995 (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.lem | 12 |
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 |
