anchor.diff:                  value = p // { content = content.value; };
                 }
               )
  -          ) (value: { priority = defaultPrio; inherit value; });
  -
  -      prioValList = map getPrioVal valList;
  -
  -      higherPrio = fold (x: y:
  -        if lessThan x.priority y then
  -          x.priority
  +          ) (value: { inherit value; });
  +
  +      addDefaultPrio = x:
  +        if x ? priority then x
  +        else x // { priority = defaultPrio; };
  +
  +      prioValList = map (x: addDefaultPrio (getPrioVal x)) valList;
  +
  +      higherPrio =
  +        if prioValList == [] then
  +          defaultPrio
           else
  -          y
  -      ) defaultPrio prioValList;
  +          fold (x: min:
  +            if lessThan x.priority min then
  +              x.priority
  +            else
  +              min
  +          ) (head prioValList).priority (tail prioValList);
       in
         map (x:
           if x.priority == higherPrio then
  
positive.code:     inherit content;
    };
  
    # Make the template traversal in function of the property traversal.  If
    # the template define a non-empty attribute set, then the property is
    # copied only on all mentionned attributes inside the template.
  
negative.code:         foldProperty
            (foldFilter isOverride
              (p@{property, content, ...}:
                if content ? priority && lessThan content.priority property.priority then
                  content
                else
                  content // {
  