anchor.diff:  
     mkOption = attrs: attrs // {_type = "option";};
   
  -  typeOf = x: if (__isAttrs x && x ? _type) then x._type else "";
  +  hasType = x: __isAttrs x && x ? _type;
  +  typeOf = x: if hasType x then x._type else "";
   
     isOption = attrs: (typeOf attrs) == "option";
   
  
positive.code:     let
        # remove possible mkIf to access the require attribute.
        noImportConditions = cfgSet0:
          let cfgSet1 = delayIf cfgSet0; in
          if cfgSet1 ? require then
            cfgSet1 // { require = rmIf cfgSet1.require; }
          else
            cfgSet1;
  
  
negative.code:           } // (head decls);
  
            # Return the list of option sets.
            optAttrs = map delayProperties defs;
  
            # return the list of option values.
            # Remove undefined values that are coming from evalIf.
            optValues = evalProperties defs;
          in
            if decls == [] then handleOptionSets optionHandler name optAttrs
            else lib.addErrorContext "while evaluating the option ${name}:" (
  