anchor.diff:              |> List.unzip
           infos, Dataset<'S> (nfs, dataset.IsSeq)
           
  +    /// Reverses the normalization performed by the 'perform' function.
       let reverse (normalizations: Normalization list) (dataset: Dataset<'S>) =
           let fs =
               List.zip normalizations dataset.FieldStorages
  
positive.code:         | :? ArrayNDHostT<single> as fs -> fs
          | _ -> failwithf "normalization requires a dataset stored in CPU memory with single data type"
  
      let perform (normalizers: Normalizer list) (dataset: Dataset<'S>) =
          let infos, nfs =            
              List.zip normalizers dataset.FieldStorages
  
negative.code:         | ZCAWhitened of means:ArrayNDHostT<single> * variances:ArrayNDHostT<single> * 
                           axes:ArrayNDHostT<single> 
  
  /// Dataset normalization functions.
  module Normalization =
  
      let rec private performField normalizer (data: ArrayNDHostT<single>)  =
  