anchor.diff:                      |> Array.map (fun (port, cnum) -> (port, new AnalogSensor(cnum)))
                       |> dict
                       |> Some
  -            defaultArg analogSensor (analogSensorDefaultInit(); analogSensor.Value)
  +            if analogSensor.IsNone then analogSensorDefaultInit()
  +            analogSensor.Value
       
       member x.Encoder
           with get() = encoder.Force()
  
positive.code:         |] with get, set
      member x.Motor
          with get() = 
              let motorDefaultInit() = 
                  IO.File.WriteAllText("/sys/class/gpio/gpio62/value", "1")
                  Helpers.I2C.send 0x10 0x1000 2
                  Helpers.I2C.send 0x11 0x1000 2
  
negative.code:         with get() = 
              let gyroDefaultInit() =
                  gyro <- Some(new Trik.Gyroscope(-32767, 32767, "/dev/input/by-path/platform-spi_davinci.1-event"))
              if gyro.IsNone then gyroDefaultInit()
              gyro.Value
  
      member x.Accel
          with get() = 
              let accelDefaultInit() = 
                  accel <- Some(new Trik.Accelerometer(-32767, 32767, "/dev/input/event1"))
              if accel.IsNone then accelDefaultInit()
              accel.Value
          
      member x.Led 
          with get() = 
              let ledDefaultInit() =
                  led <- Some(new Trik.Led("/sys/class/leds/"))
              if led.IsNone then ledDefaultInit()
              led.Value
      
      member x.Pad 
          with get() = 
              let padDefaultInit() =
                  pad <- Some(new Trik.PadServer(4444))
              if pad.IsNone then padDefaultInit()
              pad.Value
  
      interface IDisposable with
          member x.Dispose() = 
  