anchor.diff:          substSubModules = m: submoduleWith (attrs // {
             modules = m;
           });
  +        nestedTypes = lib.optionalAttrs (freeformType != null) {
  +          freeformType = freeformType;
  +        };
           functor = defaultFunctor name // {
             type = types.submoduleWith;
             payload = {
  
positive.code:         substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m);
          typeMerge = t1: t2: null;
          functor = (defaultFunctor name) // { wrapped = finalType; };
        };
  
      # Obsolete alternative to configOf.  It takes its option
  
negative.code:       getSubModules = elemType.getSubModules;
        substSubModules = m: attrsOf (elemType.substSubModules m);
        functor = (defaultFunctor name) // { wrapped = elemType; };
        nestedTypes.elemType = elemType;
      };
  
      # A version of attrsOf that's lazy in its values at the expense of
  