anchor.diff:    | QForall (bs, trigger, e1)
     | QExists (bs, trigger, e1) ->
         prefix2
  -        (soft_surround 2 0 (p_quantifier e ^^ space) (p_binders true bs []) dot)
  +        (soft_surround 2 0 (p_quantifier e ^^ space) (p_binders true bs) dot)
           (p_trigger trigger ^^ p_noSeqTerm ps pb e1)
     | _ -> p_simpleTerm ps pb e
   
  
positive.code:     group(str "module" ^^ space ^^ p_quident uid)
    | Tycon(true, [TyconAbbrev(uid, tpars, None, t), None]) ->
      let effect_prefix_doc = str "effect" ^^ space ^^ p_uident uid in
      surround 2 1 effect_prefix_doc (p_typars tpars []) equals ^/+^ p_typ false false t
    | Tycon(false, tcdefs) ->
      (* TODO : needs some range information to be able to use this *)
      (* separate_map_with_comments (str "type" ^^ space) (str "and" ^^ space) p_fsdocTypeDeclPairs tcdefs *)
  
negative.code:     p_effectDefinition lid bs t eff_decls
  
  and p_effectRedefinition uid bs t =
      surround 2 1 (p_uident uid) (p_binders true bs) (prefix2 equals (p_simpleTerm false false t))
  
  and p_effectDefinition uid bs t eff_decls =
    braces_with_nesting (
      group (surround 2 1 (p_uident uid) (p_binders true bs)  (prefix2 colon (p_typ false false t))) ^/^
      prefix2 (str "with") (separate_break_map_last semi p_effectDecl eff_decls)
      )
  
  