anchor.diff:      let newNet, _, _, _ = 
           let outCount = netOutputs.Length
           let netWeights = [for x in [1..outCount] -> [for y in [1..outCount] -> if x = y then 1.0 else 0.0]]
  -        let netDeltas = List.map2 (fun answer output -> answer - output) answers netOutputs 
  -        let initialState = ([], netOutputs, netWeights, netDeltas)
  +        let netErrors = List.map2 (fun answer output -> answer - output) answers netOutputs 
  +        let initialState = ([], netOutputs, netWeights, netErrors)
           (allInputs, net, initialState) |||> List.foldBack2 getBpData 
       newNet
   
  
positive.code: 
  // Train XOr
  let goXor() = 
      let net = createNet 2 [2] 1
      let samples = getSamples xorCases 100000
      printfn "cost before: %f" (calcCost samples (evalOutputs net) )
      xorCases |> Array.iter (fun (inputs, answer) -> printfn "%f" (evalOutputs net inputs).[0])
      let finalNet = (net, samples) ||> List.fold (fun net (input, answers) -> (trainNet net input answers))
      printfn "cost after:  %f" (calcCost samples (evalOutputs finalNet) )
      xorCases |> Array.iter (fun (inputs, answer) -> printfn "%f" (evalOutputs finalNet inputs).[0])
  
  let maxIndex list =
      list
  
negative.code: let goDigits() = 
      let now() = DateTime.UtcNow
      let start = now()
      let sampleSize = 324  
      // 80; 512; 3280; 21000 ?
      // 5; 40; 324; 2609; 21000;
      printfn "Loading data and calculating initial values ..."
   
      let buildAnswerList count index  =
  