anchor.diff:  generate_macros(#docs{module=#module{mexps=Mexps},macs=Macros}) ->
       Mdoc = fun (#macro{name=Name,arity=Arity,anno=Anno,docs=Docs}=M) ->
                      Sig = generate_sig(M),
  -                   docs_v1_entry(macro, Name, Arity, Anno, [Sig], Docs, #{})
  +                   Spec = generate_spec(M),
  +                   docs_v1_entry(macro, Name, Arity, Anno, [Sig], Docs, Spec)
              end,
       [ Mdoc(M) || M <- Macros, exported_macro(M, Mexps) ].
   
  
positive.code:                  mexps=[]                       %Exported macros
                  }).
  
  -record(function, {name=[],
                     arity=[],
                     anno=[],
                     docs=[],
                     meta=[],
                     def=[]
                    }).
  
  -record(macro, {name=[],
                  arity=[],
                  anno=[],
                  docs=[],
                  meta=[],
                  def=[]
                 }).
  
  make_chunk(Code, CompilerOpts) ->
  
negative.code: function_arity(['match-lambda',[Pat|_]|_]) -> length(Pat).
  
  collect_macro(Name, Meta, Def, Line) ->
      F = #macro{name=Name,
                 arity=1,                         %Default for all macros
                 anno=Line,
                 meta=Meta,
                 def=Def},
      collect_mac_metas(Meta, F).
  
  collect_mac_metas(Metas, Mac) ->
  