anchor.diff:  %% @see substitute_negations/2
   %% @see normalize/2
   
  --spec substitute_aliases(Aliases, List) -> List when
  +-spec substitute_aliases(Aliases, ListIn) -> ListOut when
         Aliases :: [{Key, Key}],
         Key :: term(),
  -      List::[term()].
  +      ListIn :: [term()],
  +      ListOut :: [term()].
   
   substitute_aliases(As, Props) ->
       [substitute_aliases_1(As, P) || P <- Props].
  
positive.code: %%
  %% @see normalize/2
  
  -spec expand(Expansions, List) -> List when
        Expansions :: [{Property :: property(), Expansion :: [term()]}],
        List :: [term()].
  
  expand(Es, Ps) when is_list(Ps) ->
      Es1 = [{property(P), V} || {P, V} <- Es],
  
negative.code: 
  -spec get_value(Key, List) -> term() when
        Key :: term(),
        List :: [term()].
  
  get_value(Key, List) ->
      get_value(Key, List, undefined).
  