src/Tools/code/code_haskell.ML
changeset 31376 4356b52b03f7
parent 31156 90fed3d4430f
child 31665 a1f4d3b3f6c8
--- 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;