diff options
| author | Jon French | 2018-05-10 12:49:38 +0100 |
|---|---|---|
| committer | Jon French | 2018-05-10 12:49:38 +0100 |
| commit | 443601a0d19907d95ed604a68403403d25ceaf73 (patch) | |
| tree | 289fa06f0583f4a2d1baec471ddc59b6ee4453e8 /src/gen_lib/state_monad.lem | |
| parent | 00c946d24c7f3f1cd9d5f6ef4798b72a2f7c3c16 (diff) | |
| parent | 839f239f01ce3ecb4fe91a3f542d194591bc1650 (diff) | |
Merge branch 'sail2' into mappings
Diffstat (limited to 'src/gen_lib/state_monad.lem')
| -rw-r--r-- | src/gen_lib/state_monad.lem | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gen_lib/state_monad.lem b/src/gen_lib/state_monad.lem index 8253b800..a2919762 100644 --- a/src/gen_lib/state_monad.lem +++ b/src/gen_lib/state_monad.lem @@ -265,3 +265,16 @@ let update_reg_field_bit regfield i reg_val bit = let new_field_value = set_bit (regfield.field_is_inc) current_field_value i (to_bitU bit) in regfield.set_field reg_val new_field_value let write_reg_field_bit reg regfield i = update_reg reg (update_reg_field_bit regfield i)*) + +(* TODO Add Show typeclass for value and exception type *) +val show_result : forall 'a 'e. result 'a 'e -> string +let show_result = function + | Value _ -> "Value ()" + | Ex (Failure msg) -> "Failure " ^ msg + | Ex (Throw _) -> "Throw" +end + +val prerr_results : forall 'a 'e 's. SetType 's => set (result 'a 'e * 's) -> unit +let prerr_results rs = + let _ = Set.map (fun (r, _) -> let _ = prerr_endline (show_result r) in ()) rs in + () |
