anchor.diff:      %% meddatum:log(">>>> => ~ts~n", [unicode:characters_to_binary(Entry, utf8)]),
       {ok, {Name, unicode:characters_to_binary(Entry, unicode)}};
   check_type({Name, gyymm, 5}, Entry) ->
  -    {ok, {Name, list_to_binary(Entry)}};
  +    case gyymm2date(Entry) of
  +        {ok, Date} -> {ok, {Name, Date}};
  +        {error, O} -> {warning, {error, O}}
  +    end;
  +
   check_type({Name, gyymmdd, 7}, Entry) ->
  -    {ok, {Name, list_to_binary(Entry)}};
  +    case gyymmdd2date(Entry) of
  +        {ok, Date} -> {ok, {Name, Date}};
  +        {error, O} -> {warning, {error, O}}
  +    end;
  +
   check_type({Name, jy_code, _}, Entry) when length(Entry) =:= 1 ->
       {ok, {Name, unicode:characters_to_binary(Entry)}}.
   
  
positive.code:                        NewList = lists:reverse(Recept#recept.segments),
                         [Recept#recept{segments=NewList}|Records0]
                 end,
      _ = lager:info("~p records.~n", [length(Records1)]),
  
      case InfoExtractor of
          undefined -> Records1;
  
negative.code:     BinChecksum = checksum:bin_to_hexbin(Checksum),
      BinFilename = list_to_binary(lists:last(filename:split(Filename))),
  
      F = fun({newline, NewLine}, {LineNo, Ctx0}) ->
                  {ok, Ctx} = parse_line(NewLine, LineNo, Ctx0),
                  {LineNo+1, Ctx};
             (_, {LineNo, Ctx0}) -> {LineNo+1, Ctx0}
          end,
  
      InitCtx = {undefined, [], #recept{file=BinFilename, checksum=BinChecksum}},
      {ok, {Total, ResultCtx}} = ecsv:process_csv_string_with(lists:flatten(Lines), F, {0, InitCtx}),
      {Recept, Records0, _} = ResultCtx,
  
      Records1 = case Recept of
  