anchor.diff:  compile_modulename(Filename) ->
       atom(binary_to_list(filename:basename(Filename))).
   
  -compile_exports(ExportedNodes) ->
  +compile_exports(FileNodes) ->
       Exports = lists:foldr(
                   fun ({IdAst, NameAst, _Schema}, Acc) ->
                           [arity_qualifier(NameAst, integer(0)),
                            arity_qualifier(IdAst, integer(0))|Acc]
  -                end, [], ExportedNodes),
  +                end, [], FileNodes),
       list([arity_qualifier(atom(schema), integer(1))|Exports]).
   
  -compile_types(ExportedNodes) ->
  +compile_types(FileNodes) ->
       Types = [begin
                    Id = ecapnp:get(id, Schema),
                    tuple([integer(Id), NameAst])
  -             end || {_IdAst, NameAst, Schema} <- ExportedNodes],
  +             end || {_IdAst, NameAst, Schema} <- FileNodes],
       list(Types).
   
  -compile_nodes(ExportedNodes) ->
  +compile_nodes(FileNodes) ->
       lists:foldr(
         fun ({IdAst, NameAst, _Schema}=Node, Acc) ->
                 [function(
  
positive.code:     [Node] = [N || N <- Nodes, Id =:= ecapnp:get(id, N)],
      Node.
  
  get_exported_nodes(Id, Nodes) ->
      get_nested_nodes(Id, Nodes, [], []).
  
  get_nested_nodes(Id, Nodes, Scope, Acc) ->
      Node = get_node(Id, Nodes),
  
negative.code: 
  compile_file(File, Nodes) ->
      Id = ecapnp:get(id, File),
      FileNodes = get_file_nodes(Id, Nodes),
      Filename = compile_filename(File),
  
      Vsn =
  