anchor.diff:    | Match (e, branches) ->
         paren_if (ps || pb) (
           group (surround 2 1 (str "match") (p_noSeqTermAndComment false false e) (str "with") ^/^
  -        separate_map_last hardline p_patternBranch branches)
  -      )
  +        separate_map_last hardline p_patternBranch branches))
     | LetOpen (uid, e) ->
         paren_if ps (
           group (surround 2 1 (str "let open") (p_quident uid) (str "in") ^/^ p_term false pb e)
  
positive.code:   | _ ->
        group (p_noSeqTermAndComment ps pb e)
  
  and p_term_sep (ps:bool) (pb:bool) (e:term) flag = match e.tm with
    | Seq (e1, e2) ->
        (* Don't swallow semicolons on the left-hand side of a semicolon! Note:
         * the `false` for pb is kind of useless because there is no construct
  
negative.code: 
  and p_simpleTerm ps pb e = match e.tm with
      | Abs(pats, e) ->
          let comm, doc = p_term_sep false pb e in //OK
          let doc =
            paren_if ps (
              (str "fun" ^/+^ separate_map break1 p_atomicPattern pats ^/^ rarrow) ^/+^ doc)
          in
          inline_comment_or_above comm doc empty
      | _ -> p_tmIff e
  
  and p_maybeFocusArrow b =
  