anchor.diff:    Sep = "\n" ++ lists:duplicate(length(Header) - 2, $\s) ++ "| ",
     [ Header,
       infix([atom_to_list(Ref) ++ "()" || Ref <- Refs], Sep),
  -    ".\n"
  +    ".\n\n"
     ];
   gen_type({Name, _Fields}) ->
     RecName = atom_to_list(Name),
  -  ["-type ", RecName, "() :: #", RecName, "{}.\n"].
  -
  -gen_records(Records) -> lists:map(fun gen_record/1, Records).
  +  ["-type ", RecName, "() ::\n",
  +   "     #", RecName, "{}.\n\n"].
   
   gen_record({_Name, {one_of, _Refs}}) ->
     [];
  
positive.code:     , ""
      , "-include(\"kpro_common.hrl\")."
      , ""
      , gen_records(Records)
      , gen_types(Records)
      , ""
      , "-endif.\n"
      ],
  
negative.code:   Filename = filename:join(["..", "include", "kpro.hrl"]),
    ok = file:write_file(Filename, IoData).
  
  gen_records_and_types(Records) ->
    [[gen_record(R), gen_type(R)] || R <- Records].
  
  gen_type({Name, {one_of, Refs}}) ->
    RecName = atom_to_list(Name),
  