anchor.diff:          let heads : Map<string, Guid> = pickler.UnPickle(File.ReadAllBytes heads)
           
           let loadData (str : string) =
  -            match w.Data.TryGetValue str with
  -                | (true, v) -> v
  -                | _ ->
  -                    let path = data ++ str
  -                    if exists path then
  -                        let data = path |> File.ReadAllBytes |> bson.UnPickle
  -                        w.Data.[str] <- data
  -                        data
  -                    else
  -                        failwithf "could not get data for hash: %A" str
  +            if str = "null" then Unchecked.defaultof<_>
  +            else
  +                match w.Data.TryGetValue str with
  +                    | (true, v) -> v
  +                    | _ ->
  +                        let path = data ++ str
  +                        if exists path then
  +                            let data = path |> File.ReadAllBytes |> bson.UnPickle
  +                            w.Data.[str] <- data
  +                            data
  +                        else
  +                            failwithf "could not get data for hash: %A" str
   
           let rec loadCommit (id : Guid) =
               match w.Commits.TryGetValue id with
  
positive.code: 
          git.pushAll repo
  
      let run() =
          build()
          read()
  
  
  
  
negative.code:         let dataTable = Dict<obj, string>()
  
          let storeData (d : obj) =
              if d = null then "null"
              else
                  dataTable.GetOrCreate(d, fun o ->
                      let hash = objHash o
                      let binary = bson.Pickle(o)
                  
  
                      let target = data ++ hash
                      if !!target then File.WriteAllBytes(target, binary)
  
                      hash
                  )
  
          let commits = target ++ "commits"
          ensureExists commits
  