anchor.diff:  exp_meta([Doc|Rest], Meta) ->
       %% The untagged doc string but not at the end.
       ?IF(lfe_lib:is_doc_string(Doc) and (Rest =/= []),
  -	exp_meta(Rest, Meta ++ [[doc,Doc]]),
  -	{Meta,[Doc|Rest]});
  +        exp_meta(Rest, Meta ++ [[doc,Doc]]),
  +        {Meta,[Doc|Rest]});
   exp_meta([], Meta) -> {Meta,[]}.
   
   %% exp_defmacro(Rest) -> {Meta,MatchLambda}.
  
positive.code:     Exp = exp_cond(Cbody),
      {yes,Exp,St};
  exp_predef(['do'|Dbody], _, St0) ->
      %% (do ((v i c) ...) (test val) . body) but of limited use as it
      %% stands as we have to everything in new values.
      [Pars,[Test,Ret]|B] = Dbody,                %Check syntax
      {Vs,Is,Cs} = foldr(fun ([V,I,C], {Vs,Is,Cs}) -> {[V|Vs],[I|Is],[C|Cs]} end,
                         {[],[],[]}, Pars),
      {Fun,St1} = new_fun_name("do", St0),
      Exp = ['letrec-function',
             [[Fun,[lambda,Vs,
                    ['if',Test,Ret,
                     ['progn'] ++ B ++ [[Fun|Cs]]]]]],
             [Fun|Is]],
      {yes,Exp,St1};
  exp_predef([lc|Lbody], _, St0) ->
      %% (lc (qual ...) e ...)
  
negative.code: 
  defspec_arity([[Args|_]|_]) ->
      case lfe_lib:is_proper_list(Args) of
          true -> length(Args);
          false -> 0
      end;
  defspec_arity(_) -> 0.
  
  