anchor.diff:    {ok, FileInfo} = file:read_file_info(Path),
     NewTs = FileInfo#file_info.mtime,
     case ets:lookup(zml_templates, FName) of
  -    [{FName, _Path, Ts, Templ}] when Ts >= NewTs -> Templ;
  -    _ -> NewTempl = compile_file(Path, Options),
  -         ets:insert(zml_templates, {FName, Path, NewTs, NewTempl}),
  +    [{FName, _Path, Ts, Templ, _IsStatic}] when Ts >= NewTs -> Templ;
  +    _ -> {NewTempl, IsStatic} = compile_file(Path, Options),
  +         ets:insert(zml_templates, {FName, Path, NewTs, NewTempl, IsStatic}),
            NewTempl
     end.
   
   template_string(Name, Str, Options) ->
  -  Templ = compile_string(Str, Options),
  -  ets:insert(zml_templates, {Name, none, 0, Templ}),
  +  {Templ, IsStatic} = compile_string(Str, Options),
  +  ets:insert(zml_templates, {Name, none, 0, Templ, IsStatic}),
     Templ.
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
positive.code: 
  render(Name, Data, Options) ->
    case get_template(Name, Options) of
      {ok, Templ} -> zml_render:render(Templ, Data);
      Err -> Err
    end.
  
  % TODO: Make sure Templ is a pure iolist
  % (can do it at compile time).
  render(Name, Options) ->
    case get_template(Name, Options) of
      {ok, Templ} -> Templ;
      Err -> Err
    end.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  
negative.code:   Options2 = other_options(Options),
    AST = zml_indent:tokenize_string(Str), % TODO: pass options here
    AST2 = run_specialized_handlers(AST, Options2),
    translate_ast_item(AST2, [], true).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  