# HG changeset patch # User haftmann # Date 1243950784 -7200 # Node ID 4356b52b03f78e03f7bed3825f1a34628aef0851 # Parent 815426e7dd3bd40062e9dc2029d2ea4674f78a8f more aggresive bracketing of let expressions diff -r 815426e7dd3b -r 4356b52b03f7 src/Tools/code/code_haskell.ML --- 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;