anchor.diff:  
   let epoch = 10000
   
  -
  -
   let trained =
    train
     epoch network
  
positive.code: //  if epoch % 100 = 0 then printfn "%f %f" rms_trained_err rms_validated_err
    printfn "%f %f" rms_trained_err rms_validated_err
    
  //  let best_trained_err = 0.042608
  //  let best_test_err = 0.029610
  //  let best_trained_err = 0.029673
  //  let best_test_err = 0.028605
    let best_trained_err = 0.019999 //*** CONSIDER PASSING TO PARAMETER.
    let best_test_err = 0.019999
    if ((rms_trained_err < best_trained_err) && (rms_validated_err < best_test_err)) then trained
    else train ((-) epoch 1) trained (training_samples, teaching_inputs) (testing_samples, teaching_testing_inputs)
  
  //  train
  //   ((-) epoch 1)
  //   trained
  //   (training_samples, teaching_inputs)
  //   (testing_samples, teaching_testing_inputs) 
  
  let inputSize = 7;
  let hiddenSize = 10;
  
negative.code: let rec genWeights (rand:System.Random) count =
   match count with
   | 0 -> []
   | _ -> rand.NextDouble()::(genWeights rand ((-) count 1))
  let genRandWeights = genWeights (System.Random())
  
  let network = {
   N = 0.001
   M = 0.9
   Inputs = List.replicate inputSize 0.0
   InputToHiddenWeights = List.chunkBySize inputSize (genRandWeights ((*) inputSize hiddenSize))
   HiddenBias = genRandWeights hiddenSize
  