anchor.diff:      fold(Fun, [], File, Opts).
   
   deep_parse(File) ->
  -    deep_parse(File, []).
  +    deep_parse(File, [], []).
   
   deep_parse(File, Opts) ->
  +    deep_parse(File, Opts, []).
  +
  +deep_parse(File, Opts, Parents) ->
       case parse(File, Opts) of
   	{ok, Yang} ->
   	    expand(Yang, set_cur(filename:absname(
  -				   filename:dirname(File)), Opts));
  +				   filename:dirname(File)), Opts), Parents);
   	{error, _} = E ->
   	    E
       end.
  
positive.code: 		      true ->
  			  error({include_loop, {L, [SubM|Visited]}});
  		      false ->
  			  Data1 = include_submodule(SubM, IOpts, Opts),
  			  {Data1, [SubM|Visited]}
  		  end;
  	     (Other, Acc) ->
  
negative.code:     [].
  
  
  find_grouping(G, Pfx, Yang, L, Ps) ->
      case [Dg || {grouping,_,G1,Dg} <- Yang, G1 =:= G] of
  	[] ->
  	    case search_parents(Ps, grouping, G) of
  		false ->
  		    throw({unknown_grouping, [uses,L,prefixed_name(Pfx, G)]});
  		{grouping, _, _, Dg1} ->
  		    Dg1
  	    end;
  	[Data] ->
  	    Data
      end.
  
  search_parents([{_, _, Elems}|Ps], Stmt, Ident) ->
      case [Elem || {St,_,Id,_} = Elem <- Elems,
  		  St =:= Stmt,
  		  Id =:= Ident] of
  	[Found] ->
  	    Found;
  	[] ->
  	    search_parents(Ps, Stmt, Ident)
      end;
  search_parents([], _, _) ->
      false.
  
  
  prefixed_name(<<>>, N) -> N;
  prefixed_name(Pfx, N ) -> <<Pfx/binary, ":", N/binary>>.
  