anchor.diff:          _         -> error(?FILE_ERROR, [Filename])
       end.
   
  -%% @doc Embed the data in the template.
  +%% @equiv compile(Template, Data, [])
   -spec compile(template(), data()) -> binary().
  -compile(T, Data) ->
  -    compile(T, Data, []).
  +compile(Template, Data) ->
  +    compile(Template, Data, []).
   
   %% @doc Embed the data in the template.
   -spec compile(template(), data(), options()) -> binary().
  
positive.code: 
  -export_type([
                template/0,
                data/0
               ]).
  
  %%----------------------------------------------------------------------------------------------------------------------
  
negative.code: compile_impl([], _, Result, _) ->
      Result;
  compile_impl([{n, Key} | T], Map, Result, Options) ->
      compile_impl(T, Map, [escape(to_binary(data_get(convert_keytype(Key, Options), Map, <<>>))) | Result], Options);
  compile_impl([{'&', Key} | T], Map, Result, Options) ->
      compile_impl(T, Map, [to_binary(data_get(convert_keytype(Key, Options), Map, <<>>)) | Result], Options);
  compile_impl([{'#', Key, Tags, Source} | T], Map, Result, Options) ->
      Value = data_get(convert_keytype(Key, Options), Map, undefined),
      case check_data_type(Value) of
          true                                        -> compile_impl(T, Map, compile_impl(Tags, Value, Result, Options), Options);
          _ when is_list(Value)                       -> compile_impl(T, Map, lists:foldl(fun(X, Acc) -> compile_impl(Tags, X, Acc, Options) end,
                                                                                          Result, Value), Options);
          _ when Value =:= false; Value =:= undefined -> compile_impl(T, Map, Result, Options);
          _ when is_function(Value, 2)                -> compile_impl(T, Map, [Value(Source, fun(Text) -> render(Text, Map, Options) end) | Result], Options);
          _                                           -> compile_impl(T, Map, compile_impl(Tags, Map, Result, Options), Options)
      end;
  compile_impl([{'^', Key, Tags} | T], Map, Result, Options) ->
      Value = data_get(convert_keytype(Key, Options), Map, undefined),
      case Value =:= undefined orelse Value =:= [] orelse Value =:= false of
          true  -> compile_impl(T, Map, compile_impl(Tags, Map, Result, Options), Options);
          false -> compile_impl(T, Map, Result, Options)
  