anchor.diff:      | Left
       | Right
   
  -type SnakeSquare = int * int
  +type Location = int * int
   type Snake = {
       direction : SnakeMove;
  -    body : SnakeSquare list
  +    body : Location list
       }
   
   
  
positive.code: type SnakeView() =
      inherit UIView()
      member val Snake : Snake = SnakeView.NewSnake() with get, set
  
      override this.Draw(rect) =
          base.Draw(rect)
          let ctx = UIGraphics.GetCurrentContext()
          ctx.ClearRect rect
          UIColor.Red.SetFill()
          // for each of my snakesquare elements should draw a square
          this.Snake.body |> Seq.iter (fun u -> this.DrawSquare (ctx, u))
  
      member this.DrawSquare(ctx, sq) =
          // given a snake square how does it draw?
          let piece = RectangleF(float32 (fst sq) * 20.0f, float32 (snd sq) * 20.0f, 20.0f, 20.0f)
          ctx.FillRect(piece)
  
      static member NewSnake() =
          { Snake.direction = Right; Snake.body = [ (0, 0) ] }
  
negative.code:         this.SetNeedsDisplay()
  
      member this.MoveForward() =
          let newSquare = this.NextSquare(this.Snake.body.Head, this.Snake.direction)
          let newBody =  newSquare :: this.Snake.body
          let totalBody = 
              if newSquare = this.Food then
                  newBody
              else
                  Seq.take (newBody.Length - 1) newBody |> List.ofSeq
                  
          this.Snake <- { 
              direction = this.Snake.direction;
              body = totalBody
              }
  
              
  