anchor.diff:          | Some NoLetQualifier -> str "let"
           | _ -> str "and"
         in
  -      let doc_pat = p_letlhs (pat, e) in
  +      let doc_pat = p_letlhs doc_let_or_and (pat, e) in
         let doc_expr = p_term false false e in
         attrs ^^
         (if is_last then
  -        group (surround 2 1 (surround 2 1 doc_let_or_and doc_pat equals) doc_expr (str "in"))
  +       surround 2 1 (flow break1 [doc_pat; equals]) doc_expr (str "in")
         else
  -        group (prefix 2 1 (surround 2 1 doc_let_or_and doc_pat equals) doc_expr))
  +        hang 2 (flow break1 [doc_pat; equals; doc_expr]))
       in
       let l = List.length lbs in
       let lbs_docs = List.mapi (fun i lb ->
  
positive.code:     (p_fsdocTypeDeclPairs (str "type") (List.hd tcdefs)) ^^
        (concat_map (fun x -> break1 ^^ p_fsdocTypeDeclPairs (str "and") x) <| List.tl tcdefs)
    | TopLevelLet(q, lbs) ->
      let let_doc = str "let" ^^ p_letqualifier q ^^ space in
      separate_map_with_comments let_doc (str "and" ^^ space) p_letbinding lbs
        (fun (p, t) -> Range.union_ranges p.prange t.range)
    | Val(lid, t) ->
      (str "val" ^^ space ^^ p_lident lid ^^ space ^^ colon) ^/+^ p_typ false false t
  
negative.code: 
  // changing PPrint's ^//^ to ^/+^ since '//' wouldn't work in F#
  let prefix2 prefix_ body = prefix 2 1 prefix_ body
  
  let prefix2_nonempty prefix_ body =
    if body = empty then prefix_ else prefix2 prefix_ body
  
  let ( ^/+^ ) prefix_ body = prefix2 prefix_ body
  
  