anchor.diff:  -type data_key()   :: string() | atom().
   -type data_value() :: data() | iodata() | fun((data(), function()) -> iodata()).
   -type assoc_data() :: [{data_key(), data_value()}].
  +-type options()    :: [{atom(), atom()}].
   
   -ifdef(namespaced_types).
   -type data() :: #{data_key() => data_value()} | assoc_data().
  
positive.code: %%----------------------------------------------------------------------------------------------------------------------
  -export([
           render/2,
           parse_binary/1,
           parse_file/1,
           compile/2
          ]).
  
  -export_type([
  
negative.code: %% @equiv compile(parse_binary(Bin), Data)
  -spec render(binary(), data()) -> binary().
  render(Bin, Data) ->
      compile(Bin, Data, []).
  
  %% @equiv compile(parse_binary(Bin), Data)
  -spec render(binary(), data(), options()) -> binary().
  render(Bin, Data, Options) ->
      compile(parse_binary(Bin), Data, Options).
  
  %% @doc Create a {@link template/0} from a binary.
  -spec parse_binary(binary()) -> template().
  