anchor.diff:  
   -spec merge_bindings(bindings(), bindings()) -> bindings().
   merge_bindings(Bindings1, Bindings2) ->
  -  Fold = fun({K, V}, Acc) ->
  -             case binding(Acc, Bindings2) of
  -               {ok, V} -> Acc;
  -               {ok, Current} -> raise({badmatch, Current});
  -               unbound -> maps:put(K, V, Acc)
  +  Fold = fun({K, {value, V}}, Acc) ->
  +             case binding(K, Bindings2) of
  +               {value, V} -> Acc;
  +               {value, Current} -> raise({badmatch, Current});
  +               unbound -> add_binding(K, V, Acc)
                end
            end,
     lists:foldl(Fold, Bindings2, maps:to_list(Bindings1)).
  
positive.code:             end
          end,
    maps:map(Fun, MapPattern),
    {match, Bindings};
  match_map_literal(_, _, _) ->
    throw(nomatch).
  
  -spec match(value(), cerl:cerl(), bindings()) -> {match, bindings()} | nomatch.
  match(Value, Pattern, Bindings) ->
  
negative.code:   File;
  file([_ | Rest]) ->
    file(Rest).
  