anchor.diff:  
       attrs = mkOptionType {
         name = "attribute set";
  -      check = lib.traceValIfNot builtins.isAttrs;
  +      check = lib.traceValIfNot isAttrs;
         merge = fold lib.mergeAttrs {};
       };
   
  
positive.code:       docPath = path: elemType.docPath (path + ".<name>");
        inherit (elemType) hasOptions delayOnGlobalEval;
      };
  
      uniq = elemType: mkOptionType {
        inherit (elemType) name check iter fold docPath hasOptions;
  
negative.code:     _type = typeName;
    };
  
  
    # name (name of the type)
    # check (boolean function)
    # merge (default merge function)
  