anchor.diff:            "  catch",
             "    Err -> {error, Err}",
             "  end.",
  +
             "render_internal(_Variables, RenderOptions) -> _@FinalBodyAst."
            ])).
   
  
positive.code:           "constants() -> _@Constants@.",
            "translatable_strings() -> _@TranslatableStrings@.",
            "translated_blocks() -> _@TranslatedBlocks@.",
            "'@_CustomTagsFunctionAst'() -> _.",
            "render() -> render([], []).",
            "render(Variables) -> render(Variables, []).",
            "render(Variables, RenderOptions) ->",
  
negative.code: custom_forms(Dir, Module, Functions, AstInfo) ->
      Dependencies = AstInfo#ast_info.dependencies,
      TranslatableStrings = AstInfo#ast_info.translatable_strings,
      TranslatedBlocks = AstInfo#ast_info.translated_blocks,
      Variables = lists:usort(AstInfo#ast_info.var_names),
      DefaultVariables = lists:usort(AstInfo#ast_info.def_names),
      Constants = lists:usort(AstInfo#ast_info.const_names),
  
      erl_syntax:revert_forms(
        lists:flatten(
          ?Q(["-module('@Module@').",
              "-export([source_dir/0, dependencies/0, translatable_strings/0,",
              "         translated_blocks/0, variables/0, default_variables/0,",
              "         constants/0, render/1, render/2, render/3]).",
              "-export(['@__export_functions'/0]).",
  
              "source_dir() -> _@Dir@.",
              "dependencies() -> _@Dependencies@.",
              "variables() -> _@Variables@.",
              "default_variables() -> _@DefaultVariables@.",
              "constants() -> _@Constants@.",
              "translatable_strings() -> _@TranslatableStrings@.",
              "translated_blocks() -> _@TranslatedBlocks@.",
  
              "render(Tag) -> render(Tag, [], []).",
              "render(Tag, Vars) -> render(Tag, Vars, []).",
              "render(Tag, Vars, Opts) ->",
  