anchor.diff:              sizeX <- v1
               sizeY <- v2
               if commandFifo = null then invalidOp "missing Start() before call"
  +            commandFifo.WriteLine("mxn " + (string v1) + " " + (string v2))
               commandFifo.WriteLine("mxn " + (string v1) + " " + (string v2))
   
       member self.Start() = 
  
positive.code:         new MXNSensor(script, "/run/mxn-sensor.in.fifo", "/run/mxn-sensor.out.fifo")
  
      override self.Parse text =
          let parse x = Trik.Helpers.fastInt32Parse x
          let parsedLines = text.Split([|' '|], StringSplitOptions.RemoveEmptyEntries)
  
          parsedLines.[0].Remove |> ignore
          Array.map parse parsedLines |> Some
  
      override self.Dispose() = 
          if not isDisposed then
              commandFifo.Dispose()
              stream.Dispose()
              base.Dispose()
  
negative.code: 
  [<Sealed>]
  type MXNSensor(scriptPath, commandPath: string, sensorPath) = 
      inherit StringFifoSensor<int[]>(sensorPath)
  
      let mutable stream = null
      let mutable commandFifo: StreamWriter = null
      let mutable isDisposed = false
      let cts = new CancellationTokenSource()
      let mutable sizeX = 3
      let mutable sizeY = 3
  
      let parse x = Trik.Helpers.fastInt32Parse x
      let script cmd = Helpers.SendToShell <| scriptPath + " " + cmd
  
      member self.Size 
  