anchor.diff:  cut_at_location1({Line, Col}, [C|Rest], {ThisLine, ThisCol}, Acc) ->
       cut_at_location1({Line, Col}, Rest, {ThisLine, ThisCol + 1}, [C|Acc]).
   
  +-spec flatten_token_locations([token()]) -> [token()].
   flatten_token_locations(Tokens) ->
       flatten_token_locations1(Tokens, []).
   
  +-spec flatten_token_locations1([token()],[token()]) -> [token()].
   flatten_token_locations1([], Acc) ->
       lists:reverse(Acc);
   flatten_token_locations1([{Type, {Line, _Col}}|Rest], Acc) ->
  
positive.code: parse_tokens([Token|Rest], TokenAcc, FormAcc, ErrorAcc, FileName, Version) ->
      parse_tokens(Rest, [Token|TokenAcc], FormAcc, ErrorAcc, FileName, Version).
  
  scan_transform(FileContents) ->
      scan_transform(FileContents, {1, 1}).
  
  scan_transform([], StartLocation) ->
      {ok, [{eof, StartLocation}]};
  scan_transform(FileContents, StartLocation) when is_binary(FileContents) ->
  
negative.code:                                                                             {'ok',[any()],_}.
  -spec parse_tokens([any()],'undefined' | [atom() | [any()] | char()], otp_version()) -> {[any()],[{_,_}]}.
  -spec parse_tokens([any()],[any()],[any()],[{_,{_,_,_}}],_, otp_version()) -> {[any()],[{_,_}]}.
  
  %% @spec compile( File::string() ) -> {ok, Module} | {error, Reason}
  compile(File) ->
  