X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/c2ce01bde477e5b32bd287ca34beecc8d490e7e7..8c57a89d75cc1d4fd050bd3767f9c881b1766c4a:/src/htmlPrint.sml diff --git a/src/htmlPrint.sml b/src/htmlPrint.sml index 5b756c3..c752c3f 100644 --- a/src/htmlPrint.sml +++ b/src/htmlPrint.sml @@ -95,10 +95,13 @@ fun p_typ' pn (t, _) = TBase s => typ s | TList t => dBox [punct "[", p_typ' false t, punct "]"] | TArrow (t1, t2) => - parenIf pn [p_typ' true t1, space 1, punct "->", space 1, p_typ' true t2] + parenIf pn [p_typ' true t1, space 1, punct "->", space 1, p_typ' false t2] | TAction (p, r1, r2) => - parenIf pn [p_predBoxed p, space 1, p_record r1, space 1, - punct "=>", space 1, p_record r2] + (case (StringMap.numItems r1, StringMap.numItems r2) of + (0, 0) => parenIf pn [p_predBoxed p] + | (_, 0) => parenIf pn [p_predBoxed p, space 1, p_record r1] + | _ => parenIf pn [p_predBoxed p, space 1, p_record r1, space 1, + punct "=>", space 1, p_record r2]) | TNested (p, t) => parenIf pn [p_pred' false p, space 1, punct "=>", space 1, p_typ' false t] @@ -139,6 +142,9 @@ fun p_exp (e, _) = punct ":", space 1, dBox [punct "(", p_typ t, punct ")"], space 1, punct "->", space 1, p_exp e, punct ")"] + | EALam (x, p, e) => dBox [punct "(\\", space 1, exp x, space 1, + punct ":", space 1, p_pred p, + space 1, punct "->", space 1, p_exp e, punct ")"] | EVar x => exp x | EApp (e1, e2) => dBox [punct "(", p_exp e1, break {nsp = 1, offset = 0}, p_exp e2, punct ")"]