anchor.diff:    {ok, Bin} = file:read_file(InFile),
     template_string(binary_to_list(Bin), Options2).
   
  -template_stream(Stream) -> template_stream(Stream, []).
  -
   template_stream(Stream, Options) ->
     Str = io:get_chars(Stream, "", 1024000),
     template_string(Str, Options).
  -
  -template_string(Str) -> template_string(Str, []).
   
   template_string(Str, Options) ->
     Options2 = other_options(Options),
     AST = zml_indent:tokenize_string(Str), % TODO: pass options here
     AST2 = run_specialized_handlers(AST, Options2),
     translate_ast_item(AST2, []).
  -
  -
  -render(Template) -> render(Template, fake).
  -
  -render(Template, Data) -> zml_render:render(Template, Data).
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  
positive.code: -module(zml).
  
  % Main function
  -export([
      compile_files/0,
      compile_files/1,
      template_file/1,
      template_file/2,
      template_stream/1,
      template_stream/2,
      template_string/1,
      template_string/2,
      start/0,
      template_dir/2,
      template/2,
      render/1,
      render/2
    ]).
  
  -include_lib("kernel/include/file.hrl").
  
  
negative.code: compile_files() -> compile_files([]).
  
  compile_files([]) ->
    Template = template_stream(standard_io, []),
    io:format("~s~n", [zml_render:render(Template, fake)]);
  
  compile_files(FLS) ->
    lists:foreach(fun(FName) ->
      FNameOut = output_file_name(FName),
      io:format("~s --> ~s~n", [FName, FNameOut]),
      Template = template_file(FName, []),
      ok = file:write_file(FNameOut, zml_render:render(Template, fake))
    end, FLS).
  
  % TODO: take output path from the options.
  