From 7a1c5e1780fd3c56d9c591821905bb3b3bbfa50a Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Thu, 19 Jun 2008 16:04:28 -0400 Subject: Beginning of functor elaboration --- src/elab_print.sml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/elab_print.sml') 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 "" 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 "" and p_file env file = -- cgit v1.2.3