anchor.diff:      | 1 -> 1
       | _ -> fib (n - 1) + fib (n - 2)
   
  -fib 5
  -fib 10
  -fib 15
  -fib 20
  -fib 25
  -fib 30
  -fib 35
  -fib 40
  +[1..8]
  +|> List.map (fun n -> time (fun () -> fib (n * 5)))
   
   let fibFast =
       let t = new Dictionary<int, int>()
  -    
       let rec fibCached n =
           match t.ContainsKey n with
           | true  -> t.[n]
  
positive.code: ﻿
  open System
  open System.Collections.Generic
  open Microsoft.FSharp.Core
  
  //------------------------------------------------------------------------------
  
  let rec fib n =
      match n with
  
negative.code:                 let res = fibCached (n - 1) + fibCached (n - 2)
                  t.Add (n, res)
                  res
      fibCached
  
  [1..8]
  |> List.map (fun n -> time (fun () -> fibFast (n * 5)))
  
  time (fun () -> fibFast 10000)
  
  //------------------------------------------------------------------------------
  
  