anchor.diff:                      |> Array.map (fun (port, cnum)  -> (port, new PowerMotor(cnum)))             
                       |> dict
                       |> Some
  -            defaultArg motor (motorDefaultInit(); motor.Value)
  +            if motor.IsNone then motorInit() 
  +            motor.Value
    
            
       member x.Servo
           with get() = 
  -            let servoDefaultInit() = 
  +            let servoInit() = 
                   servo <- 
                       x.ServoConfig
                       |> Array.map (fun (port, path, kind) ->  (port, new Servomotor(path, kind)))             
                       |> dict
                       |> Some
  -            defaultArg servo (servoDefaultInit(); servo.Value)
  +            if servo.IsNone then servoInit() 
  +            servo.Value
           
       
       member x.AnalogSensor
  
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:                     |> Array.map (fun (port, cnum) -> (port, new AnalogSensor(cnum)))
                      |> dict
                      |> Some
              if analogSensor.IsNone then analogSensorDefaultInit()
              analogSensor.Value
      
      member x.Encoder
          with get() = encoder.Force()
  