--- a/src/Tools/code/code_haskell.ML Tue Jun 02 15:53:03 2009 +0200
+++ b/src/Tools/code/code_haskell.ML Tue Jun 02 15:53:04 2009 +0200
@@ -106,10 +106,10 @@
|> pr_bind tyvars thm BR ((NONE, SOME pat), ty)
|>> (fn p => semicolon [p, str "=", pr_term tyvars thm vars NOBR t])
val (ps, vars') = fold_map pr binds vars;
- in
+ in
Pretty.block_enclose (
- str "let {",
- concat [str "}", str "in", pr_term tyvars thm vars' NOBR body]
+ str "(let {",
+ concat [str "}", str "in", pr_term tyvars thm vars' NOBR body, str ")"]
) ps
end
| pr_case tyvars thm vars fxy (((t, ty), clauses as _ :: _), _) =
@@ -124,7 +124,8 @@
str "})"
) (map pr clauses)
end
- | pr_case tyvars thm vars fxy ((_, []), _) = str "error \"empty case\"";
+ | pr_case tyvars thm vars fxy ((_, []), _) =
+ (brackify fxy o Pretty.breaks o map str) ["error", "\"empty case\""];
fun pr_stmt (name, Code_Thingol.Fun (_, ((vs, ty), []))) =
let
val tyvars = Code_Printer.intro_vars (map fst vs) init_syms;