anchor.diff:  -include("estree_prefabs.hrl").
   
   % -- Functions --
  -c_module(ModuleName, ExportList, FunctionList) ->
  +c_module(ModuleName, [{FuncName, Arity} | OtherExports], 
  +         [{FuncNameWithArity, Function} | OtherFunctions]) when is_list(ModuleName) , is_list(FuncName) , is_integer(Arity) , is_list(FuncNameWithArity) ->
  +    ExportList = [{FuncName, Arity} | OtherExports],
  +    FunctionList = [{FuncNameWithArity, Function} | OtherFunctions],
       program(
           constDeclaration(
               list_to_binary(ModuleName),
  
positive.code: 
  
  % Misc Functions
  print(Map) ->
      code:add_path("../lib/"),
      Json = json:serialize(Map),
  
  
negative.code: % each entry in the map into a function containing a switch/case statement on arg length.
  c_exports(ExportList) ->
      MappedByFuncName = c_exports_mapfuncs(ExportList, #{}),
      constDeclaration(
          <<"exports">>, 
          objectExpression(
              lists:map(fun({FuncName, Arities}) ->
                  property(
                      literal(list_to_binary(FuncName)), 
                      functionExpression(null, [], blockStatement(c_exports_gencases({FuncName, Arities})), false)
                  )       
              end, maps:to_list(MappedByFuncName))                                 
          )
      ).
  
  % Function which takes a list of tuples in the form {Key, Value} and generates a map in the
  % form #{Key => ListOfAllValuesBelongingToKey}
  c_exports_mapfuncs([], Map) ->
      Map;
  c_exports_mapfuncs([{FnName, FnArity} | Tails], Map) when is_list(FnName) , is_integer(FnArity) ->
      case maps:find(FnName, Map) of
          {ok, Val} ->
              NewVal = Val ++ [FnArity];
  