anchor.diff:      list() |                    % First matching option is used
       syntax_fun() |
       '__defaults' |              % Defaults for this level #{atom() => term()}
  -    '__mandatory'.              % Mandatory fields for this level [atom()]
  +    '__mandatory' |              % Mandatory fields for this level [atom()]
  +    '__post_check'.
  +
   
   -type key() :: atom().
   -type val() :: term().
  
positive.code:         {ok, Parse2} ->
              case check_mandatory(Parse2) of
                  ok ->
                      {ok, Parse2};
                  {error, Error} ->
                      {error, Error}
              end;
  
negative.code: 
  
  %% @private
  check_post_check(#parse{syntax = Syntax, ok = Ok} = Parse) ->
      case maps:get('__post_check', Syntax, none) of
          Fun when is_function(Fun, 1) ->
              case Fun(Ok) of
                  ok ->
                      {ok, Parse};
                  {error, {field, Key}} ->
                      {error, {syntax_error, path_key(Key, Parse)}};
                  {error, Error} ->
                      {error, Error}
              end;
          _ ->
              {ok, Parse}
      end.
  
  
  
  %% @private
  to_existing_atom(Term) when is_atom(Term) ->
      {ok, Term};
  
  