anchor.diff:          inline_comment_or_above comm ctor empty
       in
       (* Beware of side effects with comments printing *)
  -    let datacon_doc () =
  +    let datacon_doc =
           separate_map hardline p_constructorBranchAndComments ct_decls
       in
  -    p_typeDeclPrefix pre true lid bs typ_opt, (fun () -> jump2 (datacon_doc ()))
  +    empty, p_typeDeclPrefix pre true lid bs typ_opt, datacon_doc, jump2
   
   and p_typeDeclPrefix (kw, fsdoc_opt) eq lid bs typ_opt =
     let maybe_with_fsdoc cont =
  
positive.code:       if range_before_pos crange print_pos
        then begin
          comment_stack := cs ;
          comments_before_pos (acc ^^ comment) print_pos lookahead_pos
          // comments_before_pos acc ^^ str origin ^^ comment (* ^^ str (string_of_pos print_pos) ^^ str " " ^^ str (string_of_pos lookahead) *) print_pos lookahead_pos
        end
        else acc, range_before_pos crange lookahead_pos
  
negative.code:       group (doc ^^ sep)
      else
        group <| ifflat (group (doc ^^ sep ^^ break1 ^^ comm)) (comm ^^ hardline ^^ doc ^^ sep)
        // group <| ifflat (group (str "<* " ^^ doc ^^ sep ^^ break1 ^^ comm ^^ str " *>")) (str "<* " ^^comm ^^ hardline ^^ doc ^^ sep ^^ str " *>")
  
  and p_term (ps:bool) (pb:bool) (e:term) = match e.tm with
    | Seq (e1, e2) ->
  