anchor.diff:      /// <summary>TBD</summary>
       member m.allModels
           with get () =
  -            if m.SubModelsDict.Count = 0 then [m]
  -            else [for sm in m.SubModelsDict.Values do yield! sm.allModels]
  +            if m.subModels .Count = 0 then [m]
  +            else [for sm in m.subModels .Values do yield! sm.allModels]
   
       /// <summary>TBD</summary>
       member m.init(f:string*Tensor->Tensor) = for KeyValue(n, p) in m.parameters.values do p.value <- f(n, p.value)
  
positive.code:     let parameterPrefixes = Dictionary<string, int>()
  
      /// <summary>TBD</summary>
      member val SubModelsDict = Dictionary<string, BaseModel>()
  
      /// <summary>TBD</summary>
      member m.train() = 
  
negative.code:                 m.parameters.add(n, p)
              | :? Model as mm ->
                  let n = if names.Length > 0 then names.[i] else sprintf "model-%s" (Random.UUID())
                  m.subModels.Add(n, mm)
                  m.parameters.add(mm.parameters.map(fun (nn, pp:Parameter) -> (nextName nn, pp)))
              | _ -> failwithf "Unsupported type. Expecting a Parameter or Model"
  
      /// <summary>
      ///  Adjust the parameters of the model to include support for forward-mode automatic differentiation.
  