anchor.diff:  
   let maxIter = 255
   
  -let height = 512
  -let width = 512
  +let height = 1024
  +let width = 1024
   
  -let minX = -2.1
  -let maxX = 0.5
  -let minY = -1.4
  -let maxY = 1.4
  +let mutable minX = -2.0
  +let mutable maxX = 2.0
  +let mutable minY = -1.5
  +let mutable maxY = 3.5
  +let mutable rectX = 0.0
  +let mutable rectY = 0.0
  +let mutable rectW = 0.0
  +let mutable rectH = 0.0
   
   let iteratePoint (s : Complex) (p : Complex) : Complex =
       { r = s.r + p.r*p.r - p.i*p.i; i = s.i + 2.0 * p.i * p.r }
  
positive.code: 
  
  open Fable.Core
  open Fable.Import.Browser
  
  type Complex = { r : double; i : double }
  
negative.code:             img.data.[index+3] <- float color.a
      ctx.putImageData(img, 0., 0.)
  
      ctx.fillStyle <- !^"rgba(200,0,0,0.5)"
      ctx.fillRect (rectX, rectY, rectW, rectH)
  
  
  document.addEventListener_mousedown(fun de ->
      rectX <- de.clientX
      rectY <- de.clientY
      rectW <- 0.0
      rectH <- 0.0
      showSet()
      obj ())
  
  document.addEventListener_mousemove(fun de ->
      if de.buttons = 1.0 then
          rectW <- de.clientX - rectX
          rectH <- de.clientY - rectY
          showSet()
      obj ())
  
  document.addEventListener_mouseup(fun de ->
      let p1 = getCoord (int rectX, int rectY)
      let p2 = getCoord (int (rectX + rectW), int (rectY + rectH))
      minX <- min p1.r p2.r
      maxX <- max p1.r p2.r
      minY <- min p1.i p2.i
      maxY <- max p1.i p2.i
      rectX <- 0.0
      rectY <- 0.0
      rectW <- 0.0
      rectH <- 0.0
      showSet()
      obj ())
  
  showSet()
  