diff options
| author | Christopher Pulte | 2016-11-27 21:38:41 +0000 |
|---|---|---|
| committer | Christopher Pulte | 2016-11-27 21:38:41 +0000 |
| commit | cf7478cf2ab1251902b0d78322d8588009707c21 (patch) | |
| tree | dd2f319ba18cc4950c370da2b8970324d4510aad /src/gen_lib/prompt.lem | |
| parent | f3d52f7900f17e941ee0e7e4e06ab25952cdd06f (diff) | |
make outcome_s contain the instruction state pretty print rather than the instruction state, factor out interpreter/shallow embedding value conversion
Diffstat (limited to 'src/gen_lib/prompt.lem')
| -rw-r--r-- | src/gen_lib/prompt.lem | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/gen_lib/prompt.lem b/src/gen_lib/prompt.lem index 5532089d..f770042c 100644 --- a/src/gen_lib/prompt.lem +++ b/src/gen_lib/prompt.lem @@ -2,14 +2,10 @@ open import Pervasives_extra open import Sail_impl_base open import Sail_values - import Interp_interface -(* this needs to go away: it's only so we can make the ppcmem outcome types the -same *) - -val return : forall 's 'a. 'a -> outcome 's 'a +val return : forall 'a. 'a -> outcome 'a let return a = Done a -val bind : forall 's 'a 'b. outcome 's 'a -> ('a -> outcome 's 'b) -> outcome 's 'b +val bind : forall 'a 'b. outcome 'a -> ('a -> outcome 'b) -> outcome 'b let rec bind m f = match m with | Done a -> f a | Read_mem descr k -> Read_mem descr (fun v -> let (o,opt) = k v in (bind o f,opt)) @@ -26,7 +22,7 @@ let rec bind m f = match m with end -type M 'a = Sail_impl_base.outcome Interp_interface.instruction_state 'a +type M 'a = outcome 'a let inline (>>=) = bind val (>>) : forall 'b. M unit -> M 'b -> M 'b |
