anchor.diff:      /// Pushes a new commit onto each of the branches at the head. Each new
       /// commit pushed is a different size to try and get a ripple effect.
       /// TODO: Needs some refactoring, lets move this matching and time counting out.
  -    let push (gametime:GameTime) commits =  
  -        let timesofar time = time + (gametime.ElapsedGameTime.TotalMilliseconds)       
  +    let push (gametime:GameTime) commits =      
  +        let timesofar time = time + (gametime.ElapsedGameTime.TotalMilliseconds)              
  +
           match List.head commits with
           | GrowingCommit p, t ->
               if timesofar t > 75.0
  
positive.code:                 then (growingCommit (p.X + 9) p.Y, 0.0) :: commits
                  else List.map(fun (c, _) -> c, timesofar t) commits
  
      /// Moves all the commits on a branch and pushes a new one onto the head and
      /// pops one at the far end of the tail (off screen).
      let moveBranch gametime branch = 
          let commits = 
              Seq.map (moveCommit gametime) branch.Commits
              |> List.ofSeq
              |> (push gametime)
          { branch with Commits = commits }
        
  
negative.code:         | ShrinkingCommit p -> (p, shrinkingCommit)
          | SmallCommit p -> (p, smallCommit)
  
      /// Deconstructs a commit to get the point
      let revert commit =
          let r, f = revertWithRecommit commit 
          r        
  
      /// Move's a commit off to the left.
      /// TODO: Needs some refactoring, lets move this matching and time counting out.
      let moveCommit (gametime:GameTime) (commit, time) =
  
          let timesofar = time + (gametime.ElapsedGameTime.TotalMilliseconds)
  
          if timesofar > 75.0 then 
              let point, f = revertWithRecommit commit
              f (point.X - 9) point.Y, 0.0
  