anchor.diff:  
   -define(PAPER, 80).
   
  --define(RIBBON, 75).
  +-define(RIBBON, 72).
   
   -define(NOUSER, undefined).
   
  
positive.code: 
  lay_union_elem(T, Ctxt) ->
      beside(text(" | "),lay_type(T, Ctxt)).
  
negative.code:     [D1, D2].
  
  lay_fun_spec(FunSpec, Ctxt)->
      Toks = Ctxt#ctxt.tokens,
      HasArity=lists:member('/', [element(1, T)||T<-Toks]),
      case wrangler_syntax:type(FunSpec) of 
          tuple ->
              case wrangler_syntax:tuple_elements(FunSpec) of 
                  [F,A] ->
                      D1 = lay(F, Ctxt),
                      case HasArity of 
                          true ->
                              D2 = lay(A, Ctxt),
                              beside(beside(D1, beside(text("/"), D2)), text("::"));
                          false ->
                              D1
                      end;
                  [M,F,A] ->
                      D1 = lay(M, Ctxt),
                      D2 = lay(F, Ctxt),
                      case HasArity of 
                          true ->
                              D3 = lay(A, Ctxt),
                              D23= beside(D2, beside(text("/"), D3)),
                              beside(beside(D1, beside(text(":"), D23)), text("::"));
                          false ->
                              beside(D1, beside(text(":"), D2))
                      end
              end;
          _ -> %% this should not happen
              lay(FunSpec, Ctxt)
  