anchor.diff:   let out_bias_newDeltas = addVectors out_bias_deltas out_bias_prevDeltasWithM
    let out_bias_update = addVectors net.OutputBias out_bias_newDeltas
    
  - let hid_grads = mulVectors (List.map dervTanH net.HiddenNetOutputs) (List.map (vecDotVec 0.0 out_grads) (transpose net.HiddenToOutputWeights))
  + let hid_grads = mulVectors (List.map dervTanH net.HiddenNetOutputs) (List.map (dotProduct out_grads) (transpose net.HiddenToOutputWeights))
    let hid_deltas = deltas net.N hid_grads net.Inputs
    let hid_prevDeltasWithM = List.map (sclarVectorMul net.M) net.HiddenPrevDeltas
    let hid_newDeltas = List.map2 addVectors hid_deltas hid_prevDeltasWithM
  
positive.code: let dervLogSigmoid x    = (*) x ((-) 1.0 x)
  let dervTanH x          = (*) (1.0 - x) (1.0 + x)
  let gradient dFunc output target = (*) (dFunc output) ((-) target output)
  let dotProduct xs ys = mulVectors xs ys |> List.sum
  
  let weightedSum inputs weights bias =
   addVectors bias (List.map (dotProduct inputs) weights)
  
negative.code:  | a::b, c::d -> List.map2 f xs ys
  
  ///The Dot Product of two Vectors.
  let dotProduct xs ys =
   match xs, ys with
   | a::b, c::d -> vecOp (*) xs ys |> List.sum
   | _, _ -> 0.0
  
  let square x = x * x
  
  