anchor.diff:    | Val (lid, t) ->
         (str "val" ^^ space ^^ p_lident lid ^^ space ^^ colon) ^^ p_typ false false t
     | TopLevelLet (_, lbs) ->
  -      separate_map hardline (fun lb -> group (p_letlhs (str "let") lb)) lbs
  +      separate_map hardline (fun lb -> group (p_letlhs (str "let") lb false)) lbs
     | _ ->
         empty
   
  
positive.code:   | _ -> true
    in
    match map_if_all all_binders pats with
    | Some bs -> // flow break1 (collapse_pats bs)
        collapse_pats bs, Binders (4, 0, true)
        // List.fold_left (fun x y -> x ^/^ y) empty (map_rev (fun (x, y) -> soft_parens_with_nesting (x ^^ colon ^^ y)) bs)
    | None -> // flow_map break1 p_atomicPattern pats
        if all all_unbound pats then
          List.map p_atomicPattern pats, Binders (4, 0, false)
        else
          List.map p_atomicPattern pats, Arrows (2, 2)
  
  and p_quantifier e = match e.tm with
      | QForall _ -> str "forall"
  
negative.code:   in
    let last_op = if List.length terms > 1 && (not no_last_op) then last_op else empty in
    let single_line_arg_indent = repeat n space in
    let fs = if flat_space then space else empty in
    match List.length terms with
    | 1 -> List.hd terms
    | _ -> group (ifflat (fs ^^ (separate sep terms') ^^ one_line_space ^^ last_op ^^ List.hd last)
             (prefix n 1 (group ((ifflat (fs ^^ separate sep terms')
               (jump2 ((single_line_arg_indent ^^ separate (sep ^^ single_line_arg_indent) (List.map (fun x -> align (hang 2 x)) terms')))))))
                 (align (hang last_n (last_op ^^ List.hd last)))))
  
  and p_tmArrow style flat_space p_Tm e =
    let terms =
      match style with
      | Arrows _ -> p_tmArrow' p_Tm e
      | Binders _ -> collapse_binders p_Tm e
    in
    format_sig style terms false flat_space
  
  and p_tmArrow' p_Tm e =
    match e.tm with
  