anchor.diff:                OptionalValue(if offset < 0 then h - t else t - h)
             | _ -> OptionalValue.Missing ) )
   
  -  // Counting & checking if values are present
  -
  -  /// Returns the total number of values in the specified series. This excludes
  -  /// missing values or not available values (such as values created from `null`,
  -  /// `Double.NaN`, or those that are missing due to outer join etc.).
  -  let countValues (series:Series<'K, 'T>) = series.Values |> Seq.length
  -
  -  /// Returns the total number of keys in the specified series. This returns
  -  /// the total length of the series, including keys for which there is no 
  -  /// value available.
  -  let countKeys (series:Series<'K, 'T>) = series.Keys |> Seq.length
  -
  -  let hasAll keys (series:Series<'K, 'T>) = 
  -    keys |> Seq.forall (fun k -> series.TryGet(k).HasValue)
  -  let hasSome keys (series:Series<'K, 'T>) = 
  -    keys |> Seq.exists (fun k -> series.TryGet(k).HasValue)
  -  let hasNone keys (series:Series<'K, 'T>) = 
  -    keys |> Seq.forall (fun k -> series.TryGet(k).HasValue |> not)
  -  let has key (series:Series<'K, 'T>) = series.TryGet(key).HasValue
  -  let hasNot key (series:Series<'K, 'T>) = series.TryGet(key).HasValue
  -
  -  let lastKey (series:Series< 'K , 'V >) = series.KeyRange |> snd
  -  let firstKey (series:Series< 'K , 'V >) = series.KeyRange |> fst
  -  let lastValue (series:Series< 'K , 'V >) = series |> get (series.KeyRange |> snd)
  -  let firstValue (series:Series< 'K , 'V >) = series |> get (series.KeyRange |> fst)
  -
  -  let values (series:Series<'K, 'T>) = series.Values
  -  let keys (series:Series<'K, 'T>) = series.Keys
  -
  +  ///
  +  /// [category:Calculations, aggregation and statistics]
     let shift offset (series:Series<'K, 'T>) = 
       let win = WindowSize((abs offset) + 1, Boundary.Skip)
       let shifted = 
  
positive.code:   /// This operation is only supported on ordered series. The method throws
    /// `InvalidOperationException` when the series is not ordered.
    ///
    /// [category:Lookup, resampling and scaling]
    let resampleInto keys dir f (series:Series<'K, 'V>) =
      series.Resample(keys, dir, (fun k s -> f k s))
  
  
negative.code:   ///     sample |> Series.fillMissing Direction.Forward 
    ///
    /// [category:Missing values]
    [<CompiledName("FillMissing")>]
    let fillMissing direction (series:Series<'K, 'T>) = 
      let fillCmd = Vectors.FillMissing(Vectors.Return 0, VectorFillMissing.Direction direction)
      let newVector = series.VectorBuilder.Build(fillCmd, [|series.Vector|])
  