string ":", space 1,
dBox [string "(", p_typ t, string ")"],
space 1, string "->", space 1, p_exp e, string ")"]
+ | EALam (x, c, e) => dBox [string "(\\\\", space 1, string x, space 1,
+ string ":", space 1, p_pred c,
+ space 1, string "->", space 1, p_exp e, string ")"]
| EVar x => string x
| EApp (e1, e2) => dBox [string "(", p_exp e1, break {nsp = 1, offset = 0}, p_exp e2, string ")"]