summaryrefslogtreecommitdiff
path: root/src/elab_print.sml
diff options
context:
space:
mode:
Diffstat (limited to 'src/elab_print.sml')
-rw-r--r--src/elab_print.sml35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/elab_print.sml b/src/elab_print.sml
index b214d5d4..03792e03 100644
--- a/src/elab_print.sml
+++ b/src/elab_print.sml
@@ -310,6 +310,19 @@ and p_sgn env (sgn, _) =
newline,
string "end"]
| SgnVar n => string (#1 (E.lookupSgnNamed env n))
+ | SgnFun (x, n, sgn, sgn') => box [string "functor",
+ space,
+ string "(",
+ string x,
+ space,
+ string ":",
+ space,
+ p_sgn env sgn,
+ string ")",
+ space,
+ string ":",
+ space,
+ p_sgn (E.pushStrNamedAs env x n sgn) sgn']
| SgnError => string "<ERROR>"
fun p_decl env ((d, _) : decl) =
@@ -367,6 +380,28 @@ and p_str env (str, _) =
| StrProj (str, s) => box [p_str env str,
string ".",
string s]
+ | StrFun (x, n, sgn, sgn', str) =>
+ let
+ val env' = E.pushStrNamedAs env x n sgn
+ in
+ box [string "functor",
+ space,
+ string "(",
+ string x,
+ space,
+ string ":",
+ space,
+ p_sgn env sgn,
+ string ")",
+ space,
+ string ":",
+ space,
+ p_sgn env' sgn',
+ space,
+ string "=>",
+ space,
+ p_str env' str]
+ end
| StrError => string "<ERROR>"
and p_file env file =