summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Campbell2018-07-17 16:06:27 +0100
committerBrian Campbell2018-07-17 16:06:27 +0100
commit0c5ff0aa6cd611ab40233b284b0a6054bc27166e (patch)
tree480d1d5d071b5b45bc1de59aa95af673b9febe0f /src
parentba4250ac585a247ab71656f57aced6857b98ecea (diff)
Coq: support effectful function signatures in axiom generation
Diffstat (limited to 'src')
-rw-r--r--src/pretty_print_coq.ml5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/pretty_print_coq.ml b/src/pretty_print_coq.ml
index 44670277..74e97a29 100644
--- a/src/pretty_print_coq.ml
+++ b/src/pretty_print_coq.ml
@@ -1846,6 +1846,11 @@ let doc_axiom_typschm typ_env (TypSchm_aux (TypSchm_ts (tqs,typ),l) as ts) =
let arg_typs_pp = separate space (List.map doc_typ' typs) in
let _, ret_ty = replace_atom_return_type ret_ty in
let ret_typ_pp = doc_typ empty_ctxt ret_ty in
+ let ret_typ_pp =
+ if effectful eff
+ then string "M" ^^ space ^^ parens ret_typ_pp
+ else ret_typ_pp
+ in
let tyvars_pp, constrs_pp = doc_typquant_items_separate empty_ctxt braces tqs in
string "forall" ^/^ separate space tyvars_pp ^/^
arg_typs_pp ^/^ separate space constrs_pp ^^ comma ^/^ ret_typ_pp