anchor.diff:    (* If t is atomic, don't put a space between t and phi
      * If t can be displayed on a single line, tightly surround it with braces,
      * otherwise pad with a space. *)
  -  optional p_aqual aqual_opt ^^ binder ^^ colon ^/^
  -    p_appTerm t ^^ (if is_t_atomic then empty else break1) ^^
  -      group ((ifflat
  -        (soft_braces_with_nesting_tight phi) (soft_braces_with_nesting phi)))
  +  let jump_break = if is_t_atomic then 0 else 1 in
  +  (optional p_aqual aqual_opt ^^ binder ^^ colon) ^/^
  +    (p_appTerm t ^^
  +      (jump 2 jump_break (group ((ifflat
  +        (soft_braces_with_nesting_tight phi) (soft_braces_with_nesting phi))))))
   
   
   (* TODO : we may prefer to flow if there are more than 15 binders *)
  
positive.code:   | (comment, crange) :: cs when range_before_pos crange pos_end ->
      comment_stack := cs ;
      let lnum = max k (line_of_pos (start_of_range crange) - lbegin) in
      let doc = doc ^^ repeat lnum hardline ^^ str comment in
      place_comments_until_pos 1 (line_of_pos (end_of_range crange)) pos_end doc
    | _ ->
      let lnum = max 1 (line_of_pos pos_end - lbegin) in
      doc ^^ repeat lnum hardline
  
  (* [separate_map_with_comments prefix sep f xs extract_range] is the document *)
  (*                                                                            *)
  
negative.code: and p_qualifiers qs =
    match qs with
    | [] -> empty
    | _ -> flow break1 (List.map p_qualifier qs) ^^ hardline
  
  (* Skipping focus since it cannot be recoverred at printing *)
  
  